云网牛站
所在位置:首页 > Linux教程 > 更改Git最近的提交及较早或多次提交,包括未推送提交、推送提交

更改Git最近的提交及较早或多次提交,包括未推送提交、推送提交

2019-10-04 09:31:23作者:增君郁稿源:云网牛站

使用Git时,可能会遇到需要编辑提交消息的情况,做出更改的原因有很多,例如,修正了错字,删除了敏感信息或添加了其他信息。本文说明了如何更改最新或较旧的Git提交的消息。安装请参考在Debian 10 Linux系统上安装Git及配置Git的方法

更改Git最近的提交及较早或多次提交,包括未推送提交、推送提交

 

更改最近的提交

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

1、未推送提交

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

1]、导航到终端中的存储库目录。

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

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

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

-m选项使你无需打开编辑器会话即可在命令行上编写新消息。

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

$ git add .

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

2、推送提交

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

通常,你应该避免修改已经推送的提交,在更改推送的提交之前,最好先咨询你的开发人员。

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

1]、导航到存储库。

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

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

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

$ git push --force branch-name

 

更改较早或多次提交

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

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

1]、导航到包含要更改的提交消息的存储库。

2]、键入git rebase -i HEAD~N,其中N是基于其执行提交的提交数,例如,如果要更改第4次提交和第5次最新提交,请输入:

$ git rebase -i HEAD~5

该命令将在默认文本编辑器中显示最新的X提交:

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)

3]、移至要更改的提交消息的行,并用reword替换pick:

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)

4]、保存更改并关闭编辑器。

5]、对于每个选定的提交,将打开一个新的文本编辑器窗口,更改提交消息,保存文件,然后关闭编辑器:

fix: update dependency json5 to ^2.1.1

6]、强制将更改推送到远程存储库:

$ git push --force branch-name

 

结论

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

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

 

相关主题

在Linux中设置Git服务器,配置本地Git存储库的方法

精选文章
热门文章