[英]Add changes to previous commit on git without a rebase
假设我的分支中有以下提交:
commit A
commit B
commit C
commit D
我进行了一些准备提交的更改,但是我想将这些更改添加到commit C
因为它们与该提交更相关。
我处理此问题的方法是执行git add . && git commit -m 'temp'
commit临时提交git add . && git commit -m 'temp'
git add . && git commit -m 'temp'
,然后git rebase -i HEAD~4
在其中我可以将commit temp
和commit C
合并在一起。 我想知道,有没有一种方法可以不必创建临时提交?
不,除了最后一次提交,您无法修改其他提交。
原因是在修改提交时,还必须更新所有后续提交。 由于它们现在指向新的父级,因此将基本上重新创建它们。 这是在重新设置期间发生的事情:正在重写提交链。
如果您只想修改最新的提交(HEAD),则没有将其作为其父提交的提交。 因此,没有需要重写的提交链。 在这种情况下,您可以使用git commit --amend
修改该提交。 这会将您已进行的任何分阶段更改添加到上一次提交。 修改提交基本上就像是为单个提交重新设置基准。
因此,如果没有基础,您将无法真正完成此任务。 我个人要说的是,交互式重新基准化是实现此目的的最佳方法:它允许您继续提交更改,然后,您可以重新排序或重新组织为改善历史所做的提交。
您还可以做的是签出要更改的提交,进行修改,然后在修改后的提交之上以非交互方式重新建立原始分支。 但这要比交互式重定基准容易得多,因为现在您需要照顾分支并提交引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.