本篇介绍如何删除已经提交的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
。
网友评论