zhuox2/Blog_in_issue

git

Opened this issue · 3 comments

git 是目前世界上最先进的分布式版本控制系统

repository 版本库又名仓库 这个目录里所有文件都可以被git管理起来,每个文件的修改,删除,git都能跟踪

创建版本库
第一步:
mkdir learngit 在目录下创建版本库
cd learngit 打开版本库
pwd 用于显示当前目录
//尽量目录名里不要有中文

第二步:
通过 git init 命令把这个目录变成git可以管理的仓库

git吧仓库建好了
目录下多出一个.git的目录,这个目录是git来跟踪管理版本库的,不要动里面的文件
可能看不到.git 用 ls -ah 可以看到隐藏的目录

git只能跟踪文本文件的改动,二进制文件是不行的。 因为文本是有编码的,所以建议所有语言使用同一种编码。不要使用windows的记事本和word来写文本文件,最好用notepad++

将需要管理的文件放进learngit下面

git add 告诉哦git,把文件添加到仓库

git commit 把文件提交到仓库

git commit =m "write a readme file" -m后面输入的是本次提交的说明,可以输入任意内容

commit可以一次提交很多文件,所以你可以多次add不同的文件

时光穿速记:

git status 可以让我们时刻掌握仓库当前的状态

git diff 可以查看不同的地方
例如:git diff readme.txt
//貌似commit之后git diff 看不到改变之后和改变之前有什么不同了,
这个命令的作用可能是,在commit之前知道对文件做了什么改变

版本回退:
git log 命令显示从最近到最远的提交日志,如果觉得显示的信息太多,可以加上 --pretty=oneline
例:git log --pretty=oneline

前面的一大堆数字是commit id 版本号, 每提交一个新版本,git就会把他们自动串成一条时间线。

怎么退回之前的版本?
在git中,用HEAD表示当前版本,上一个版本是HEAD^,上两个版本就是HEAD^,以此类推,上100个版本就是HEAD~100(这样表达简单一点)

回退到上一个版本,用命令git reset
例:git reset --hard HEAD^
现在git log 看不到刚刚的head版本,但是想恢复回去还是可以的

找到刚刚head的commit id
命令 : git reset --hard +commit id

git的版本回退非常快,因为git在内部有个指针指向当前版本的指针,当你版本回退的时候,git仅仅是改变了指针的指向