重命名 GitHub 中的提交消息

ray*_*yan 6 git github

*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"
.
.
Run Code Online (Sandbox Code Playgroud)

然后我运行了以下命令:

git checkout dev-abc
get merge fb/abc
Run Code Online (Sandbox Code Playgroud)

没有对 dev-abc 分支进行任何其他更改。所以这是一个简单的快进合并。

此时,图表如下所示。

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

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

此时,在创建拉取请求时,我在其中一个文件中遇到了合并冲突。(为什么??)

无论如何,我在 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
 .
 .
Run Code Online (Sandbox Code Playgroud)

我还有一些尚未提交的更改。他们甚至不在集结区。

我应该采取的正确步骤顺序是什么?那么,我不会丢失任何工作,也不会更改提交消息吗?

小智 29

\xc2\xa0 git commit --amend\xc2\xa0 命令允许您更改最近的提交消息。

\n\n

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

\n\n

对于推送的提交:\n导航到存储库。

\n\n

修改最新推送的commit消息:

\n\n

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

\n\n

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

\n\n

git push --force branch-name

\n\n

将\xc2\xa0导航到终端中的存储库目录。

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n