首先这个不是入门教程,如果要入门的话可以google 下git入门,你会得到比较多的资料,这里主要是对git里的一些概念进行清晰的解释。如果你连git环境都没有的话就没必要看下去了,先goole下git 入门吧。
推荐下一个git在线学习网站,可以通过例子来联系命令并看到返回结果
http://pcottle.github.com/learnGitBranching/
1.commit
创建分支,这个在git里是非常轻量级的。这也是git和其他版本控制工具比较大的区别,git 对分支的定义比较轻量,他鼓励多创建分支。
初始的样子
创建分支后:
这个时候如果继续commit还是会在master上面提交,newImage将不会随着改变
如果想要在newImage上进行提交,需要使用checkout来切换branch。git checkout newImage; git commit 之后
3.merge
用来合并分支的,比如你在master分支上,你想合并bugFix的代码
这个时候bugFix 如果想合并master分支,因为bugFix在master的下游,所以会共同指向c4这个节点。
运行 git checkout bugFix; git merage master
4.rebase
另一种形式的合并,相当把在master 这个分支下面把bugFix从开出之后的补丁都打上,比如这是刚开始的时候
git rebase master 之后
这里可以看到rebase不会对master造成影响,如果这个时候matster commit 了,将会产生一个以C2为父节点的C4节点。如果master想要移动到c3节点,只要git checkout master;git rebase bugFix。
5.Head
Head 相对当前commit分支是一个标志性标签,他表示你当前分支最新的commit位置。
刚开始的时候:HEAD -> master -> C1
执行git checkout C1 后:HEAD -> C1
6.Relative Refs
在实际的操作过程中没有这样的可视化tree给你看,通常是通过git log来查看,而且commit的hash值通常很长。这也是git 为什么会有相对引用。
开始的时候
执行 git checkout master^ 后
可以看到HEAD往上移动到master的父节点。
^只能往上移动一个,~后面可以带数字表示移动几位
git checkout HEAD~4
使用相对路径最常用的方法是你可以将分支直接移动到某个commit,需要带上-f参数,比如:git branch -f master HEAD~3 ,就是把master分支移到HEAD的前三位的地方
6.Reversing Changes 撤销变更
git reset 退回到某个commit,这个将会清除历史
执行git reset HEAD~1 后
C2 就相当与不存在了
为了撤销变更并和其他人分享这次变更可以使用:git revert
git revert HEAD
一个新的commit在C2下面,但是这个C2‘是对C2的反转(撤销),这样你可以把你的改变和其他人分享。
ok,就先到这把。后续的高级特性等以后需要使用了再介绍