在GitHub中重命名提交消息

6
*commit N+20 <-- (HEAD)branch fb/abc(i made 20 commits in this branch)   [most recent]
.
.
*commit N <-- branch dev-abc, origin/dev-abc //created another feature branch from here "fb/abc"
.
.

然后我运行了以下命令:

git checkout dev-abc
get merge fb/abc

开发ABC分支没有进行其他更改。因此,这是一个简单的快进合并。

此时,图形看起来像这样。

 *commit N+20 <-- branch fb/abc, dev-abc(HEAD)  [most recent]
 .
 .
 *commit N <-- origin/dev-abc
 .
 .

现在,我将所有这些更改推送到远程仓库

在这一点上,当我创建一个Pull Request时,在其中一个文件中发生了合并冲突。(为什么??)

不管怎样,我在GitHub的解决冲突工具中解决了所有冲突。这在GitHub中创建了一个新的提交,该提交在我的本地副本中不存在。我需要更改此提交的提交消息。我该怎么做?

还有一件事,我在本地进行了两个额外的提交,但我还没有推送它们。每当我尝试推送时,都会出现错误消息,指出我在远端有一些未在本地存在的更改。它建议我先git pull这些更改(我认为是在GitHub上创建的附加提交(我想要更改其消息的提交))。

 *commit N+22 <-- branch dev-abc(HEAD)  [most recent] // how the graph appears locally
 *commit N+21

 *commit N+20 <-- branch fb/abc, origin/dev-abc
 .
 .
 *commit N <-- origin/dev-abc
 .
 .

我还有一些未提交的更改,它们甚至没有在暂存区中。

我应该采取什么正确的步骤顺序?这样,我就不会丢失任何工作,并且还可以更改提交信息?


查看此教程(以便在本地获取所有提交),并参考此教程重命名最后一次提交。 - SwissCodeMen
1个回答

29

git commit --amend 命令允许你更改最近一次的提交消息。

我将向您解释如何重命名已推送和未推送的提交。

对于已推送的提交:

导航到存储库。

修改最新推送的提交的消息:

git commit --amend -m "New commit message."

强制推送以更新远程存储库的历史记录:

git push --force branch-name

在终端中导航到存储库目录。

运行以下命令以修正(更改)最新提交的消息:

git commit --amend -m "New commit message."

该命令的作用是使用新提交覆盖最近的提交。

-m 选项允许您在命令行上编写新消息,而无需打开编辑器会话。

在更改提交消息之前,您还可以使用以下命令添加之前忘记的其他更改:

git add .git commit --amend -m "New commit message."


如果您需要执行此操作,则需要“ForcePush”权限。如果是这种情况,那么它与git reset --soft HEAD~1相同,重新提交所有内容,然后git push branch -f。 - Pepe Alvarez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接