[转]git commit --amend用法
适用场景:
比方说,你的代码已经提交到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 相当于重新加了一个信息。相当于打了个补丁?
参考
相关文章
- git pull --rebase
- Windows下解决github push failed (remote: Permission to userA/XXXX.git denied to userB.) 上传gitHub失败报错
- [Git] Git fetch和git pull的区别
- [Git] git merge和rebase的区别
- [翻译] USING GIT IN XCODE [1] 在XCODE中使用GIT[1]
- [git]Git与Repo入门
- [git]Git常用命令
- git配置本地环境(phpstudy/tortoisegit/git等)
- Git最牛最全详解
- [Git] Use and Compare the Different git Reset Options: --hard, --soft, and --mixed
- [Practical Git] Clean up commits with git rebase
- [Practical Git] Show who changed a line last with git blame
- 在mac上使用github--设置git
- [Git] Recover Local Changes from `git reset --hard` with `git reflog`
- [Practical Git] Filter commit history with git log arguments
- Git撤回已经推送(push)至远程仓库提交(commit)的版本
- Git常用知识点整理
- git提交后的自动化流程构建
- git的使用流程
- Git 钩子
- git勾子hook post-receive和pre-receive 有时间整理
- git初级--配置
- BitKeeper 和 Git
- [Git & GitHub] 变更Git Bash的默认路径
- git reset --hard 恢复
- git常用命令
- git的reset重置:记录一次一键替换全部内容的作死事件和解决办法
- Git的fatal: Not a git repository (or any parent up to mount point /home)
- 【最详细】Git常用命令面试题 (60道)
- 【Git总结大全】git操作从入门到实战(总结篇)
- 【Git技巧】第七篇 git分区原理(超级详细)
- Git分支命名规则(feature分支/hotfix分支)
- 使用git进行项目管理--git使用及其常用命令