NotePublic/Software/Applications/Git/git_commit_amend_用法.md

2.3 KiB
Raw Permalink Blame History

git commit --amend 用法

适用场景:

比方说你的代码已经提交到git库leader审核的时候发现有个Java文件代码有点问题于是让你修改通常有2种方法

方法1leader 将你提交的所有代码 abandon掉然后你回去 通过git reset …将代码回退到你代码提交之前的版本然后你修改出问题的Java文件然后 git add xx.java xxx.java -s -m “Porject : 1.修改bug…”

最后通过 git push origin HEAD:refs/for/branches

方法2leader不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 相当于重新加了一个信息。相当于打了个补丁?