0

我有以下 Git 日志:

Git 日志

我已经使用 EGit “修改以前的提交”功能来更改提交的提交消息,其中包含消息“删除未使用的函数 addSubinterval before”,我已经推送到 Git 服务器以“删除未使用的函数 addSubinterval”

之后我意识到我的文件中有代码,我已经删除并推送到服务器。提交时带有消息:“删除未使用的函数 setDocumentTextAndInfoColor()”。我不知道这次提交的唯一内容是否回来了。

我检查了提交信息:"Delete "nextrefid" and "nextrefid_nr" for follow-on..."。该提交未在我的本地文件中恢复。

这是“修改先前提交”的理想行为吗?

我想这是一个错误,但也许我错过了什么?

4

1 回答 1

0

Amend 用修改后的本地提交替换您的最后一次本地提交。但是在您的情况下,您已经将原始提交推送到您的服务器。在这种情况下,EGit 甚至会警告您:

EGit 对修改推送提交的警告

我怀疑你后来做的是“拉”。这会将远程分支origin/master与您的本地分支合并master。在您的情况下,这意味着原始提交已合并回您的本地分支,这就是您仍然在历史记录中看到它的原因。

如果您真的想从服务器中删除原始提交,则必须使用所谓的“强制推送”。之所以这样称呼它,是因为您实际上在做的是覆盖/删除服务器上的数据。如果其他人已经拥有原始提交(他们在您推送后获取),您还必须与这些人协调,以便他们也可以从本地存储库中删除提交。

由于这些原因,不建议在提交后修改提交(除非在 Gerrit 等特殊工作流程中,或者如果您知道自己在做什么)。

于 2014-08-01T11:33:56.620 回答