git commit的--amend选项
2016-03-29 08:00
585 查看
git commit --amend常常用来修改某个branch上最顶端的commit,大多数情况下,这个命令给人的感觉是用新的commit替换了原来的commit。git commit --amend与下面的语句等价:
举个例子,假设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 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不会被废弃。
相关文章推荐
- Linux 性能测试工具
- switch 语句
- Jfinal中的render
- java函数参数传参
- UVA 11552 Fewest Flops 【区间dp】
- 支付宝通知页面notify_url、返回页面return_url
- iOS post一个json字符串到服务器 评论
- linux学习基础之1.0---shell的常见指令
- Eclipse下用Gradle 打包Android 程序
- sqlserver查询指定树形结构的所有子节点
- 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root
- 终极瘦身指南
- The minimum depth The maximum path sum path sum II
- 精华阅读第 10 期 |解开阿尔法狗(AlphaGo)人工智能的画皮
- 利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备
- VMware VirtualCenter Server Service服务启动失败
- 计算两个时间戳间隔时间, (可以用于倒计时
- (七)RxJava定时器:timer
- Android studio 制作aar 使用Gradle发布项目到JCenter仓库
- Oracle学习(四)----分组函数