码迷,mamicode.com
首页 > 其他好文 > 详细

git commit的--amend选项

时间:2016-03-29 08:54:56      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

    git commit --amend常常用来修改某个branch上最顶端的commit,大多数情况下,这个命令给人的感觉是用新的commit替换了原来的commit。git commit --amend与下面的语句等价:

git reset --soft HEAD^  //将branch的头指针向前移动一个commit,--soft选项使得index和workspace tree的内容保持移动之前不变

...do something...

git commit -c ORIG_HEAD  //-c选项使得新提交的log message重用ORIG_HEAD指向的commit使用的log message,但允许用户编辑

 

举个例子,假设master branch上的提交历史如下图:

技术分享

运行git commit --amend时,过程如下:

技术分享

图中有阴影的commit就是master指针移动之前指向的commit,当git commit --amend运行结束后,这时因为没有任何其他branch指向有阴影的commit,该commit会被废弃。但是如果是下面的情况:

技术分享

运行git commit --amend的过程如下:

技术分享

上图中加阴影的commit仍然是master指针移动之前指向的commit,但是由于该commit还被alt branch引用,因此这个commit不会被废弃。

 

git commit的--amend选项

标签:

原文地址:http://www.cnblogs.com/chaoguo1234/p/5331586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!