编写软件需要软件版本控制,我原来用tortoise svn, 后来不知何故,
数据没有了。我问朋友,哪个好,他说他在用git.
这样,我就开始学习使用git, 并看git 的帮助文件。
git add
git commit
我最开始就是网上查找资料,常用命令,我开始学习的网站是
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
后来,我发现其实安装git 的时候,就安装了帮助文件。
帮助文件在哪呢? git --man-path 就会显示出来,注意man前是2个"-"
我的显示是:c:\program files\git\mingW64\share\man
在这个目录里你可以看到各种帮助文件,简单教程,常用命令,各命令详解,不过都是英文的,估计中文版就是中文的吧,我可以看英文,就无所谓。
创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:
mkdir learngit
cd learngit
pwd
/Users/michael/learngit
第二步,通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录
这里有个问题,我现在有个目录liwenz, 我想管理其下的源代码,那我怎么办?
答案就是在这个liwenz 目录下运行git init
cd liwenz
git init
把文件添加到版本库
第一步,用命令git add告诉Git,把文件添加到仓库:
$ git add readme.txt
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
第二步,用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m “wrote a readme file”
简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
运行git status命令看看结果
git diff顾名思义就是查看difference
版本回退
git log命令显示从最近到最远的提交日志
现在我们启动时光穿梭机,怎么做呢?
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164…882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。
回退到上一个版本,就可以使用git reset命令:
$ git reset --hard HEAD^
HEAD is now at ea34578 add distributed
在Git中,总是有后悔药可以吃的。当你用 git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:
$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@