在使用git协同工作时,偶然也会遇到commit错误的时候,针对最后一次commit错误的情况,应该如果修改处理呢?
1,通过git commit --amend 命令 ,修改最后一次提交的commit
2,使用 git push origin -f branch 强制覆盖远程仓库。(-f 有风险,请谨慎使用,master 上不到万不得已千万别用)
commit 只提交在本地仓库,未提交到远程仓库这种场景解决起来比较容易,解决方法有如下两种:
commit $ git commit -am "这是一个新的commit"这种方式使用的应该是比较多,也是最简单的,不是本次介绍的重点。
commit --amend 首先使用 commit log ,查看需要修改到最后一次提交
$ git log
commit 34645b952f2656093e47a959594acb8cd714cf24 (HEAD -> master)
Author: *** <*******>
Date: Thu Oct 17 20:23:57 2019 +0800
提交测试commit之后修改错误代码,把修改提交到暂存区
$ git add .发起commit修改
$ git commit --amend 会进入如下的界面
提交测试commit
//这里是新添加的,修改后的提交信息
oooooooooooooooo
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date: Thu Oct 17 20:23:57 2019 +0800
#
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# modified: app/src/main/java/com/*****/activity/YLDemoMainActivity.java
#
~
~
~
~
~
~
~
"~/Documents/workspace/android/demo/YLDemo/.git/COMMIT_EDITMSG" 14L, 453C输入修改后的提交信息,wq退出就OK了。
再次使用使用 git log查看,结果如下: 说明最后一次的commit提交已经被我们修改好了
yanlongli@ ~/Documents/workspace/android/demo/YLDemo (master) $ git log
commit 34645b952f2656093e47a959594acb8cd714cf24 (HEAD -> master)
Author: *** <*******>
Date: Thu Oct 17 20:23:57 2019 +0800
提交测试commitcommit 已经提交到远程仓库commit 已经被提交到远程仓库后,需要修改那就只能使用commit --amend命令了。
commit --amend 修改本地仓库的最后一次提交。 (具体如何操作,可以参考上一节)$ git push origin -f master这样最后一次commit的修改就应用到远程仓库了.
tips:
1,其中 -f 是 --force 的缩写
2,master 分支不建议使用 -f 参数,因为团队开发很容易删除其他同事的提交。(可以在分支上使用)
问题:
如果发现提交错误的commit 不是最后一次,而是在倒数第二次的位置上,应该如果处理呢?
END!