Git学习

首先这个不是入门教程,如果要入门的话可以google 下git入门,你会得到比较多的资料,这里主要是对git里的一些概念进行清晰的解释。如果你连git环境都没有的话就没必要看下去了,先goole下git 入门吧。

推荐下一个git在线学习网站,可以通过例子来联系命令并看到返回结果

http://pcottle.github.com/learnGitBranching/

1.commit

在一个Git存储库中的一个commit记录快照目录中的所有文件。这就像一个巨大的复制和粘贴,但是更重要!这个很简单没啥好说的。
2.branch

创建分支,这个在git里是非常轻量级的。这也是git和其他版本控制工具比较大的区别,git 对分支的定义比较轻量,他鼓励多创建分支。

初始的样子


创建分支后:


这个时候如果继续commit还是会在master上面提交,newImage将不会随着改变


如果想要在newImage上进行提交,需要使用checkout来切换branch。git checkout newImage; git commit 之后



3.merge

用来合并分支的,比如你在master分支上,你想合并bugFix的代码

Git学习_第1张图片

这个时候bugFix 如果想合并master分支,因为bugFix在master的下游,所以会共同指向c4这个节点。

运行 git checkout bugFix; git merage master 

Git学习_第2张图片


4.rebase

另一种形式的合并,相当把在master 这个分支下面把bugFix从开出之后的补丁都打上,比如这是刚开始的时候

Git学习_第3张图片

git rebase master 之后

Git学习_第4张图片

这里可以看到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

Git学习_第5张图片

6.Relative Refs

在实际的操作过程中没有这样的可视化tree给你看,通常是通过git log来查看,而且commit的hash值通常很长。这也是git 为什么会有相对引用。

开始的时候


执行 git checkout master^ 后

Git学习_第6张图片

可以看到HEAD往上移动到master的父节点。

^只能往上移动一个,~后面可以带数字表示移动几位

git checkout HEAD~4

Git学习_第7张图片

使用相对路径最常用的方法是你可以将分支直接移动到某个commit,需要带上-f参数,比如:git branch -f master HEAD~3 ,就是把master分支移到HEAD的前三位的地方

6.Reversing Changes 撤销变更

git reset 退回到某个commit,这个将会清除历史

Git学习_第8张图片

执行git reset HEAD~1 后

Git学习_第9张图片

C2 就相当与不存在了

为了撤销变更并和其他人分享这次变更可以使用:git revert

git revert HEAD

 

一个新的commit在C2下面,但是这个C2‘是对C2的反转(撤销),这样你可以把你的改变和其他人分享。

ok,就先到这把。后续的高级特性等以后需要使用了再介绍


你可能感兴趣的:(Git学习)