Blog
Learning by doing.
Git初步(一)
May 29, 2013
• Git
• Tags:
Git
今天开始正式使用Git来进行SPS开发的版本控制。
Git是一个分布式版本控制/软件配置管理软件,原来是linux内核开发者林纳斯·托瓦兹(Linus Torvalds)为了更好地管理linux内核开发而创立的。需要注意的是和GNU Interactive Tools,一个类似Norton Commander界面的文件管理器有所不同。 Git最初的开发动力来自于BitKeeper和Monotone。Git最初只是作为一个可以被其他前端比如Cogito或StGIT包装的后端而开发的。不过,后来Git内核已经成熟到可以独立地用作版本控制。很多有名的软件都使用Git来进行版本控制,其中有Linux内核、X.Org服务器和OLPC内核开发。 @Wikipedia
建立项目并初始化Git
mkdir proj
cd proj
touch README
git init
查看状态
git status
发现没有被跟踪的文件,提示使用git add <file>
命令。
跟踪与去跟踪文件
git add <file>
此时如果再查看状态便可发现new file: <file>
。
如果不想让git跟踪某一文件,可以
git rm <file>
如果觉得上面的方法麻烦,可以
git add .
让git重新扫描当前的目录,自动跟踪被修改的文件。
如果确实有些文件不想被跟踪,可以编辑.gitignore
文件,在文件中输入不想被跟踪的文件的文件名即可。
发布
首先对自己的账户进行设置。
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
此时会在用户主目录生成.gitconfig
,可以通过如下命令查看
cat ~/.gitconfig
然后就可以发布
git commit -m "<message>"
这样我们就把空文件README发布到了git的版本库中。
如果文件被修改,可以使用-a
参数自动添加已被跟踪了的被修改过的内容,这样就不必每次都git add
刷新文件状态了。
git commit -a -m "<message>"
如果要留多行
git commit -a
这时可能需要设置一下自己喜欢的编辑器了
git config --global core.editor vim
然后在执行git commit -a
后,就可以在首行添加多行留言。添加的格式是:首行标题,空行,单行或者多行的正文。
如果要在版本库里显示每次修改的内容,可以使用-v
参数
git commit -a -v
如果觉得这个命令太长了,可以设置别名
git config --global alias.ci "commit -a -v"
以后就只要输入如下命令即可
git ci
查看日志
git log
这样就可以看到版本的修改信息了。
若要查看具体的修改内容,可以
git log -p
也可以使用前端工具tig来查看版本信息
tig
tig的用法很简单,此处就不赘述了 : )
撤销修改内容
如果想在提交版本之前查看修改内容,则可输入
git diff
如果发现想要撤销掉最新的修改,可以
git reset --hard HEAD
如果发现整个最新的版本都不想要了,可以
git reset --hard HEAD^
如果只是想撤销某个文件的最新修改,可以
git checkout <file>
这个动作实际上是取出版本库中最新的<file>
,效果就是将这次的修改覆盖掉。
如果发现项目中存在一个小bug需要修复,可以
git stash
从而把最新的修改贮藏起来。等到bug被修复后,
git ci
将修复bug的这一动作提交,然后
git stash apply
取出之前的其它修改,然后继续开发。
分支
查看目前所在节点
git branch
建立分支
git checkout -b <name>
这时候在<name>
分支上的修改都不会影响master
上的文件。
如果在分支上的测试完毕,想回到master
,可以
git checkout master
然后
git branch -D <name>
以删除<name>
分支
如果想以某一历史版本作为分支,可以用tig查看版本号,版本号可以只输入前5位。然后
git checkout <version> -b <name>
Tags:
Git