繁体   English   中英

将更改添加到git上的先前提交而无需重新设置

[英]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 tempcommit C合并在一起。 我想知道,有没有一种方法可以不必创建临时提交?

不,除了最后一次提交,您无法修改其他提交。

原因是在修改提交时,还必须更新所有后续提交。 由于它们现在指向新的父级,因此将基本上重新创建它们。 这是在重新设置期间发生的事情:正在重写提交链。

如果您只想修改最新的提交(HEAD),则没有将其作为其父提交的提交。 因此,没有需要重写的提交链。 在这种情况下,您可以使用git commit --amend 修改该提交。 这会将您已进行的任何分阶段更改添加到上一次提交。 修改提交基本上就像是为单个提交重新设置基准。

因此,如果没有基础,您将无法真正完成此任务。 我个人要说的是,交互式重新基准化是实现此目的的最佳方法:它允许您继续提交更改,然后,您可以重新排序或重新组织为改善历史所做的提交。

您还可以做的是签出要更改的提交,进行修改,然后在修改后的提交之上以非交互方式重新建立原始分支。 但这要比交互式重定基准容易得多,因为现在您需要照顾分支并提交引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM