Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何修改现有提交中的特定单词?_Git_Rebase - Fatal编程技术网

Git 如何修改现有提交中的特定单词?

Git 如何修改现有提交中的特定单词?,git,rebase,Git,Rebase,我被催促改变。 这比最近的两次提交要早。 我的树看起来很像 git log ac123d commit 1 vr43de commit 2 q6ade6 commit 3 我必须在commit 3中做一些小的更改,这只是一个单词替换。 我需要编辑第三次提交而不产生额外的提交。 有办法吗?还是可以接受 试试看: git rebase -i <sha or tag before the commit you wish to update> 更新服务器端(注意,这会有一些退步,主要是

我被催促改变。 这比最近的两次提交要早。 我的树看起来很像

git log

ac123d commit 1
vr43de commit 2
q6ade6 commit 3
我必须在commit 3中做一些小的更改,这只是一个单词替换。 我需要编辑第三次提交而不产生额外的提交。 有办法吗?还是可以接受

试试看:

git rebase -i <sha or tag before the commit you wish to update>
更新服务器端(注意,这会有一些退步,主要是在其他开发人员退出该分支的情况下)

我建议您首先创建一个分支,并在分支上进行实践

还可以看看问题的症结所在(增加了重点)

我需要编辑第三次提交,而不生成其他提交。有办法吗

不,这是不可能的。不能以任何方式更改提交。提交ID的计算方式是,对提交内容的任何更改都会更改该提交及其派生的每个提交的ID,如果“更改”提交的ID,则实际上意味着您正在创建一个新的提交(尽管可能与原始提交非常相似)

可能的选择是:

1) 在下一次提交中修复该问题,并接受历史记录将始终包含这些前一次提交中的错误单词


2) 重写历史记录,要求清除您已将现有提交推送到的远程设备的所有克隆

是否有其他人使用与您推送到的存储库相同的存储库?
--应使用带租约的强制,而不是
-f
/
--force
,以防止覆盖远程设备上较新的提交。
git push -f