在 EGit/Eclipse 中使用 modify->reword 进行提交更改,下一步该怎么做?



我有一个同事在一个名为GL104的分支上工作。 他做了两个提交,并将它们推送到存储库。 最新的提交是存储库上的 faed3fd7。 然后他意识到他想更改他的提交消息,所以他在历史记录中拉出它,右键单击最新的提交并选择修改>Reword。 他更改了他的文本,这给了他一个新的提交 ID。 他没有对服务器进行"推送提交"或任何形式的推送。 然后,他在该项目中的"状态"显示他领先 2 次提交。 我建议他将他的本地分支推到存储库,但因非快进而被拒绝。 在那之后,他的状态显示他领先 1 次提交,落后 1 次提交。 我不明白这是为什么。

无论如何,我试图在输入时在网上找到它,但还没有找到任何东西。 那么这里的正确程序是什么? 我猜他必须推动他改写的承诺。 我不确定。

我们正在使用Eclipse Mars.1。

推送提交后,通常无法更改提交消息。这是因为在幕后,当您选择"重写"时,将使用与旧提交相同的父级创建新提交。当您有两个具有相同父级的提交时,需要进行合并;这就是为什么它不允许您推送新提交的原因。

现在,如果没有其他人对措辞错误的提交进行拉动,您可以执行强制推送(git push -f),这将删除该提交并将其替换为正确的提交。但是,如果其他人已经将措辞错误的提交拉到他们的本地存储库中,则强制推送只会延迟合并的发生(即当其他人进行下一次拉动时)。

所以,长话短说,你的同事可能最好保持原样。

最新更新