本篇介绍如何删除已经提交的commit内容。
举例:删除df05b27 Update Haier ID
root@ubuntu:/home/run/code/adb# git log --oneline 2096ff9 (HEAD -> master, origin/master, origin/HEAD) add prebuilt deb package for i386 1ceec66 modify gen_udev_rules.sh ## 后一条commit df05b27 Update Haier ID ## 要删除的commit 4941ea4 Add Haier ID ## 前一条commit 547bb15 mod README.md 3aa44fb mod README.md 3a0e138 mod README.md e341c7f mod README.md and autogen.sh
方法:
## 1、找到要删除的commit id(df05b27)的下一个commit id(4941ea4),使用git rebase命令 git rebase -i 4941ea4 ## 2、修改要删除的commit id(df05b27)前的pick为drop,保存退出 drop df05b27 Update Haier ID ## 将pick改为drop pick 1ceec66 modify gen_udev_rules.sh pick 2096ff9 add prebuilt deb package for i386 ## 3、删除后,查看提交记录 root@ubuntu:/home/run/code/adb# git log --oneline 0943f01 (HEAD -> master) add prebuilt deb package for i386 ea6df01 modify gen_udev_rules.sh ## 后一条commit 4941ea4 Add Haier ID ## 前一条commit 547bb15 mod README.md 3aa44fb mod README.md 3a0e138 mod README.md e341c7f mod README.md and autogen.sh 1eb2b50 add autogen.sh e2870da add support for mac os x/darwin ## 4、提交,强制覆盖已有的分支 git push -f 远程仓名 本地分支名
注:
提交时,如果不添加-f
,会提示:hint: Updates were rejected because the tip of your current branch is behind
。
{{o.name}}
{{m.name}}