Git提交后追加修改的操作指南

 更新时间:2025年10月17日 08:26:58   作者:字节逆旅  
文章介绍了在Git开发时,如何将后续修改合并到上一次commit中,避免产生多个提交,主要方法是使用git add和git commit --amend命令,若已推送远程需谨慎使用强制推送,避免影响他人协作

在开发时经常会遇到在git commit后,又把文件修改了一下的情况,此时要如何操作才能避免提交多个commit呢?

前面你已经走了这两步:

git add .
git commit -m "fix:修改了一个bug"

此时你提交的代码还在本地暂存区,然后你又发现没改完,又有新修改文件产生。

接下来,你的操作步骤应该是这样的:

基本步骤

将修改的文件添加到暂存区(Staging Area)

这里还是和你平时提交前一样,使用 git add 命令。

# 添加某个特定文件
git add <文件名>
# 或者,添加所有当前修改的文件
git add .

执行修改提交(Amend Commit)

这会把你刚刚添加的修改,合并到上一次的commit提交中,并且会重写(覆盖) 上一次的提交。

git commit --amend

git commit --amend 后会发生什么?

如果你的文本编辑器(如 Vim, VSCode 等)弹出来了一段文本内容,不要慌,你会看到上一次提交的提交信息。

这时你可以 直接保存退出(一般是输入:wq),就使用原来的提交信息。或者也可以修改提交信息,然后保存退出,相当于这是你修改上次写错的提交信息的机会。

  1. 命令执行完成后,commit被重置

你之前的那次提交(我称之为 Commit A)就会被一个新的提交(姑且称之为 Commit A‘)所替代。Commit A‘ 包含了原来的更改和你刚刚添加的更改。

最终效果:你的提交历史中看起来只有一次提交,但这次提交包含了你后来追加的更改,很nice。

重要提醒(尤其涉及远程仓库时)

涉及到远程仓库时,我都是很小心的,因为这可能会污染同事的代码,前面几步都是在本的操作。这里说一下涉及远程仓库时要注意的地方:

如果已经推送到远程了怎么办?

如果你已经将原来的提交 git push 到了远程仓库,那么在你本地执行 --amend 后,你的本地历史就和远程历史不一致了。

这时你需要使用 git push --force-with-lease推荐)或 git push --force 来强制覆盖远程仓库的历史。

请谨慎使用 force push,因为这会影响此项目中的其他程序员——如果他们已经基于你原来的提交进行了开发,强制推送会打乱他们的流程。通常只在确定只有你一人在修改这个分支时才能这么做。

操作流程总结

# 1. 提交后,发现还有需要修改的地方,继续修改文件
# 2. 将修改后的文件加入暂存区
git add <file(s)>
# 或者
git add .

# 3. 将修改追加到上一次提交
git commit --amend
# (在弹出的编辑器中确认或修改提交信息,然后保存退出)

# 4. 【如果之前的提交已经推送到远程】需要强制推送更新
git push --force-with-lease

一般情况下,只需完成前两步 git addgit commit --amend 即可。

到此这篇关于Git提交后追加修改的操作指南的文章就介绍到这了,更多相关Git提交后追加修改操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Git中如何跟踪或取消跟踪文件或文件夹方式

    Git中如何跟踪或取消跟踪文件或文件夹方式

    这篇文章主要介绍了Git中如何跟踪或取消跟踪文件或文件夹方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-10-10
  • git设置用户名密码的示例代码

    git设置用户名密码的示例代码

    这篇文章主要介绍了git设置用户名密码的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • VSCode连接远程服务器调试代码超详细流程(图文)

    VSCode连接远程服务器调试代码超详细流程(图文)

    这篇文章主要给大家介绍了关于VSCode连接远程服务器调试代码的超详细流程,远程调试是为了解决在本机开发环境与线上不一致导致调试难、搭建繁琐,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Git如何实现撤销提交(命令行+IDEA)

    Git如何实现撤销提交(命令行+IDEA)

    这篇文章主要介绍了Git如何实现撤销提交(命令行+IDEA)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • php/asp/asp.net中判断百度移动和PC蜘蛛的实现代码

    php/asp/asp.net中判断百度移动和PC蜘蛛的实现代码

    这篇文章主要介绍了php/asp/asp.net中判断百度移动和PC蜘蛛的实现代码,需要的朋友可以参考下
    2015-09-09
  • 使用idea 去除 html 代码前的行号和空行的方法详解

    使用idea 去除 html 代码前的行号和空行的方法详解

    这篇文章主要介绍了使用idea 去除 html 代码前的行号和空行,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • 详解HTTP协议简介

    详解HTTP协议简介

    HTTP是访问互联网使用的核心通信协议,也是所有web应用程序使用的通信协议。下面通过本文给大家介绍HTTP协议简介的相关知识,感兴趣的朋友一起学习吧
    2018-01-01
  • JetBrains(IEDA、CLion、Pycharm) 学生获得免费使用资格

    JetBrains(IEDA、CLion、Pycharm) 学生获得免费使用资格

    JetBrains针对学生推出了免费使用资格,但是很多同学却不知道或者说不知道怎样获得免费资格,通过学生认证来使用JetBrains的软件才是最方便稳定的,具体怎么获取呢,感兴趣的朋友跟随小编一起看看吧
    2020-08-08
  • 详解git merge命令应用的三种情景

    详解git merge命令应用的三种情景

    这篇文章主要介绍了详解git merge命令应用的三种情景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 程序员编程从初级到中级的10个秘诀

    程序员编程从初级到中级的10个秘诀

    在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客、文章及杂志分成两类:面向初学者类(“hello world”这种类型的教程)以及面向专家类(MSDN杂志)。
    2011-02-02

最新评论