最近的项目管理用的是GIT,刚开始只是打算能用即可,没打算好好学习它。但是GIT的魅力很大啊,让人禁不住想多了解了解。时间有限,历史、背景、来源,都无需多说。我就把常常能碰到的应用场景列举一下,一方面分享给大家查阅,一方面自己备忘吧。我工作的环境是 Ubuntu, 虽然 Git 在多个平台都是可以使用的,但是仍然略有差别。
$ apt-get install git
$ git clone address
$ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com
$ git config --global merge.tool meld
$ git config --list
$ git config user.name
$ git help <verb> $ git <verb> --help $ man git-<verb>
$ git status
$ git add fileName
$ git add -A
git commit -m “”
git difftool b1 b2
git difftool c1 c2
git difftool HEAD
$ git log $ git log -p -2 $ git log --since=2.weeks
git log通常就够用,后面的是加一些限定条件的,有许多限定条件可用,如果你需要的话。
git commit --amend -m "xxx"
如果你刚刚提交了,但是漏掉了一个文件,又不想再提交一次。那么用这条指令,相当与修改了你最后一次提交,并且会覆盖掉你最后提交的信息,显示一次提交。
git reset HEAD fileName
说白了,就是某个文件我add了,但是我由不想提交了,怎么办?执行这个。
git reset HEAD fileName
一个文件我改了,然后我又不想要这个改动了,还原回去用这个命令。
git config --global alias.br branch
这个绝对好用有木有,有的命令太长,好了,设置简单的别名即可啊。这只是个简单的例子,更多精彩查阅文档。
git push origin branch
虽然你commit了,但那是在你的本地,如果想要把你的提交同步到服务器,那么需要git push 命令。branch是你打算push到的远程分支名字。
$ git checkout -b serverfix origin/serverfix
创建本地分支 serverfix 来追踪 远程的分支 origin/serverifx.
$ git pull origin
我知道这个方法不是最安全的,因为git pull命令会自动merge,但是我不得不说,这个是我最常用的,他会把远程代码库的更新pull到你本地。并且自动merge当前分支。
$ git reset --hard ”commit md5“
$ git reset --soft ”commit md5“
--hard 和 --soft的区别在于,前者会彻底覆盖掉你本地未提交的修改,而后者会保留你的修改。commit md5 是你执行 git log 时,看到的commit的md5值。
$ git merge branch1
把branch1分支合并到当前分支。有可能很顺利,也有可能会发生冲突,仔细看提示信息,再提交!
$ git mergetool
如果合并分支的时候冲突了,用这个命令手动解决。这是常有的事儿。
$ git branch -b "branch1"
创建一个叫“branch1”的分支。
$ git branch -d "branch1"
$ git checkout branch1
切换到branch1分支。
$ git push origin :branch1
删除远程的branch1分支。
暂时想到这些吧,以后想到了再补充。我相信你会用了这些,就可以完成基本的代码库管理了。另外,git是很有意思的一个东西,与其他的版本控制系统(VCS)很不一样,如果想要深入学习,还有很长的路要走。这里推荐一本电子书,《Pro Git - Scott Chacon.pdf》,简单而全面,很容易看懂。谢谢!
原文:http://www.cnblogs.com/beautiful-scenery/p/3525618.html