如何更改最新或较旧的 Git 提交的消息

<!--

  • @Author: starkwang
  • @Contact me: https://shudong.wang/about
  • @Date: 2019-10-22 18:49:56
  • @LastEditors: starkwang
  • @LastEditTime: 2019-10-22 18:50:39
  • @Description: 如何更改最新或较旧的 Git 提交的消息

-->

永久链接: https://shudong.wang/10620.html

使用 Git 时,可能会遇到需要编辑提交消息的情况。做出更改的原因有很多,例如,修正了错字,删除了敏感信息或添加了其他信息。

本指南说明了如何更改最新或较旧的 Git 提交的消息。

更改最近的提交

git commit --amend 命令允许您更改最新的提交消息。

未推送的提交

要更改尚未推送到远程存储库的最新提交的消息,请使用该 --amend 标志再次提交。

  1. cd 到终端中的存储库目录。

  2. 运行以下命令以修改最新提交的消息:

    <div class="highlight">

    git commit --amend -m &#34; New commit message. &#34;`</pre></div>
    

    该命令的作用是用新的覆盖新的提交。 该 -m 选项允许您在不打开编辑器会话的情况下在命令行上编写新消息。

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

    <div class="highlight"><pre class="chroma">git add . git commit --amend -m &#34;New commit message.&#34;</pre></div>

    推送提交

    被修改的提交是具有不同 SHA-1 的新实体。先前的提交将不再存在于当前分支中。

    通常,您应该避免修改已经推送的提交,因为这可能会给基于此提交工作的人们带来麻烦。在更改推送的提交之前,最好先咨询您的开发人员。

    如果更改了最近推送的提交的消息,则必须强制推送它。

  3. 导航到存储库。

  4. 修改最新的推送提交的消息: <div class="highlight"><pre class="chroma">git commit --amend -m &#34; New commit message. &#34;</pre></div>

  5. 强制推送以更新远程存储库的历史记录: <div class="highlight"><pre class="chroma">git push --force branch-name</pre></div>

    更改较早或多次提交

    如果需要更改较旧或多次提交的消息,则可以使用交互方式 git rebase 来更改一个或多个较早提交。

    rebase 命令将重写提交历史记录,强烈建议不要对已经推送到远程 Git 存储库的提交进行重新整理。

  6. 导航到包含要更改的提交消息的存储库。

  7. 键入 git rebase -i HEAD~N ,其中 N 是执行基础更改的提交次数。例如,如果要更改第 4 次提交和第 5 次最新提交,请输入: <div class="highlight"><pre class="chroma">git rebase -i HEAD~5</pre></div> 该命令将在默认的文本编辑器中显示最新的 X 次提交: <div class="highlight"><pre class="chroma">`pick 43f8707f9 fix: update dependency json5 to ^ 2.1.1 pick cea1fb88a fix: update dependency verdaccio to ^ 4.3.3 pick aa540c364 fix: update dependency webpack-dev-server to ^ 3.8.2 pick c5e078656 chore: update dependency flow-bin to ^ 0.109.0 pick 11ce0ab34 fix: Fix spelling.

    Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands)`</pre></div>

  8. 移至要更改的提交消息的行,并替换 pickreword : <div class="highlight"><pre class="chroma">`reword 43f8707f9 fix: update dependency json5 to ^ 2.1.1 reword cea1fb88a fix: update dependency verdaccio to ^ 4.3.3 pick aa540c364 fix: update dependency webpack-dev-server to ^ 3.8.2 pick c5e078656 chore: update dependency flow-bin to ^ 0.109.0 pick 11ce0ab34 fix: Fix spelling.

    Rebase 7e59e8ead..11ce0ab34 onto 7e59e8ead (5 commands)`</pre></div>

  9. 保存更改并关闭编辑器。

  10. 对于每个选定的提交,将打开一个新的文本编辑器窗口。更改提交消息,保存文件,然后关闭编辑器。 <div class="highlight"><pre class="chroma">fix: update dependency json5 to ^ 2.1.1 </pre></div>

  11. 强制将更改推送到远程存储库: <div class="highlight"><pre class="chroma">`git push --force branch-name </div>

结论

要更改最新的提交消息,请使用 git commit --amend 命令;使用 git rebase -i HEAD~N 来更改旧的或多条提交消息。

一般不要修改推送的提交,因为它可能会给您的同事带来很多问题。


作者博客
![2019-10-21-19-20-20](http://s.shudong.wang/2019-10-21-19-20-20.png)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值