Git分支浅谈 二

不妨我们再来提交一次:
vim test.rb
git commit -a -m 'made a change'

结果是:
[img]http://static.open-open.com/lib/uploadImg/20120201/20120201121724_283.png[/img]

嘿嘿,看到么,分支testing向前移动了一格,而master分支仍然指向原先git checkout时所在的commit对象。
现在我们回到master光临一下:

git checkout master

[img]http://static.open-open.com/lib/uploadImg/20120201/20120201121725_226.png[/img]

上面git checkout master做了两件事情。它把HEAD指针移回到master分支,并且把工作目录中的文件换成了master分支所指向的快照内容。也就是说,现在开始所做的改动,将始于本项目中一个叫老的版本。它的主要作用是将testing分支里作出的修改暂时取消,这样你就可以向另外一个方向进行开发。

我们做些修改后再次提交:

$vim test.rb
$git commit -a -m 'made other changer'

现在我们的项目提交历史产生了分叉,如下图:
[img]http://static.open-open.com/lib/uploadImg/20120201/20120201121725_89.png[/img]
因为我们刚才创建了一个分支,转换到其中进行了一些工作,然后又回到原来的主分支进行了另外一些工作。这些改变分别孤立在不同的分支里:我们可以在不同的分支里面反复切换,并在时机成熟时把他们合并到一起。而所有这些工作,仅仅需要branch和checkout这两条命令就可以完成,读到这儿你是否觉得git的分支很有兴趣了。
由于git中的分支实际上仅是一个包含所指对象校验和(40个字符长度SHA-1字串)的文件,所以创建和销毁一个分支就变得非常廉价。说白了,新建一个分支就是向一个文件写入41个字节(外加一个换行符)那么简单,当然也就很快了。


下面分析请参考:
[b][size=large]git分支浅谈 三[/size][url][/url][/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值