那些比你走得远的人,并不比你聪慧,只是每天多走了一点。坚持,是最强大的力量。

git删除中间某次提交

首先使用 git log 获取commit信息, 如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
commit 58211e7a5da5e74171e90d8b90b2f00881a48d3a
Author: test <test@36nu.com>
Date: Fri Sep 22 20:55:38 2017 +0800

add d.txt

commit 0fb295fe0e0276f0c81df61c4fd853b7a000bb5c
Author: test <test@36nu.com>
Date: Fri Sep 22 20:32:45 2017 +0800

add c.txt

commit 7753f40d892a8e0d14176a42f6e12ae0179a3210
Author: test <test@36nu.com>
Date: Fri Sep 22 20:31:39 2017 +0800

init

假如要删除备注为add c.txt commit为0fb295fe0e0276f0c81df61c4fd853b7a000bb5c的这次提交, 按以下步骤操作:

1、首先找到此次提交之前的一次提交的commit 7753f40d892a8e0d14176a42f6e12ae0179a3210
2、执行如下命令

1
git rebase -i (commit-id)

commit-id 为要删除的commit的下一个commit号

1
git rebase -i 7753f40

弹出如下界面

3、编辑文件,将要删除的commit之前的单词改为drop ,然后按照提示保存退出

4、此已经删除了指定的commit,可以使用git log查看
然后推送到远程仓库

1
git push origin HEAD –-force

此时 add c.txt commit 就被干掉了,没有影响后面的提交