我被推动了我的改变。 这是最近2次提交之前的事情。 我的树看起来很像,
git log
ac123d commit 1
vr43de commit 2
q6ade6 commit 3
我必须在提交3中进行小的更改,这只是一个单词替换。 我需要编辑第3次提交而不产生额外的提交。 有办法吗?还是可以接受的?
答案 0 :(得分:3)
问题的关键(重点补充)
我需要编辑第3次提交而不产生额外的提交。有办法吗?
不,这是不可能的。无法以任何方式更改提交。提交的ID的计算方式是,对提交内容的任何更改都会更改该提交的ID以及每次提交的后续提交,如果您“更改”提交的ID,则表示您正在创建新提交(虽然可能与原版非常相似。)
可能的选择是:
1)在下次提交中修复问题,并接受历史记录将始终包含这些先前提交中的错误字词
2)重写历史记录,要求清理已经推送现有提交的遥控器的所有克隆
答案 1 :(得分:1)
尝试:
git rebase -i <sha or tag before the commit you wish to update>
这将打开一个编辑器,您可以在其中指定要执行的操作 然后在提交3上,您可以更新提交
git commit --amend
,然后git rebase --continue
将重新启动rebase过程。然后你将使用
git push -f
更新服务器端(小心这有一些缺点,主要是如果其他开发人员已拉动此分支)
我建议你先创建一个分支并在分支上练习。