深入理解Git (五) - commit链的形成

我们新增一个文件比如second,内容为second_information,我们依次执行:


先生成blob对象。

# git hash-object -w second

abcdef


接下来更新cache。

# git update-index --add --cacheinfo abcdef second


接下来生成tree对象。

# git write-tree 

efgh3d


接下来是生成commit链的重点了,我们要加上-p指出它的父亲commit节点是哪个。

# echo "second information" | git commit-tree efgh3d -p prcmit

ger9gd


最后我们更新HEAD的指向

# git update-ref refs/heads/master ger9gd  

其实这条命令相当于,先读出HEAD的内容,比如refs/heads/master,然后更新其内容为新的commit,

大致类似于:

echo "ger9gd" > `cat HEAD`


另外update-ref时,还要更新reflog信息以便进行数据恢复,这个以后再说。好了,我们现在可以git log查看历史commit了。


原文:http://blog.csdn.net/hongchangfirst/article/details/45334833

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值