适用场景:
比方说,你的代码已经提交到 git 库,leader 审核的时候发现有个 Java 文件代码有点问题,于是让你修改,通常有 2 种方法:
方法1:leader 将你提交的所有代码 abandon 掉,然后你回去 通过 git reset … 将代码回退到你代码提交之前的版本,然后你修改出问题的 Java 文件,然后:
git add xx.java xxx.java -s -m "Porject: 1.修改bug…"
最后通过:
git push origin HEAD:refs/for/branches
方法2:leader 不 abandon 代码,你回去之后,修改出问题的 Java 文件,修改好之后,git add 该出问题.java
然后
git commit –-amend –-no-edit
最后
git push origin HEAD:refs/for/branches
当我们想要对上一次的提交进行修改时,我们可以使用 git commit –-amend
命令。git commit –-amend
既可以对上次提交的内容进行修改,也可以修改提交说明。
举个例子:
Step1:我们先在工作区中创建两个文件 a.txt 和 b.txt,并且 add 到暂存区,然后执行提交操作;
Step2:此时我们查看一下我们的提交日志, 可以看到我们的提交日志中显示最新提交有两个文件被改变;
Step3:此时我们发觉我们忘了创建文件 c.txt,而我们认为 c.txt 应该和 a.txt, b.txt 一同提交,而且 a.txt 文件中应该有内容 'a'。于是我们在工作区中创建 c.txt,并 add 到暂存区。并且修改 a.txt(故意写错语法且没有将 a.txt 的修改 add 到暂存区);
Step4:我们查看一下此时的提交日志,可以看到上次的提交 0c35a 不见了,并且新的提交 11225 号就是上次提交的修补提交,它就像是在上次提交被无视了,修改后重新进行提交了一样;
Step5:此时我们发现 a.txt 文件修改没有成功,于是我们还得进行一次对 a.txt 的修改,将 a.txt add 到 stage,然后再执行一次与上一次类似的提交修补。
OK 了,git commit –-amend
的用法大致就是这样。
总结:git commit --amend
相当于上次提交错误的信息被覆盖了,gitk 图形化界面上看不到上次提交的信息,git log 上也看不到之前的信息,而 add 后再 commit 相当于重新加了一个信息,相当于打了个补丁。
作者:shadow雨轩
原文链接:https://www.jianshu.com/p/a8a2ac58f37d
推荐阅读
去BAT,你应该要看一看的面试经验总结
程序员面试如何与HR谈薪?
聊一聊程序员如何增加收入
欢迎关注公众号『easyserverdev』,本公众号推崇基础学习与原理理解,不谈大而空的架构与技术术语,分享接地气的服务器开发实战技巧与项目经验,实实在在分享可用于实际编码的编程知识。如果对后端开发感兴趣,想加入 高性能服务器开发微信交流群 进行交流,可以先加我微信 easy_coder,备注"加微信群",我拉你入群,备注不对不加哦。