Git 的 revert 命令撤销多次提交

git revert 命令的含义
git revert commitId

表示撤销某个提交,并不是说撤销至某个提交。

举个例子:

新增1.txt文件进行第一次提交,新增2.txt文件进行第二次提交;
此时使用 git log 命令找到第一次提交的 commitId,执行 git revert commitId,暂存区只会撤销新增的1.txt。

如果想要撤销多次提交怎么办?

典型的应用场景是某次提交后的n次提交都需要撤销;经过多次测试后,有两种方式可以解决。

第一种: 撤销1、2次左右的提交

直接一个个撤销吧,别多想。

第二种: 撤销4、5次左右的提交

将 master 分支倒数第5次(含)至倒数第3次(含)提交撤销:

git revert -n master~5..master~2

将 master 分支最后5次(含)提交撤销:

git revert -n master~5..master
第三种: 撤销更多次的提交

第一步:假设 master 分支需要撤销至某个提交(假设提交id是 commitId,某个提交本身不撤销哦),从某个提交检出分支 dev;

git checkout commitId -b dev

第二步:切换至 master 分支,将在 master 分支中而不在 dev 分支中的提交撤销(一定要加 -n,表示撤销后不执行提交,否则你撤销几个提交就要执行几次提交):

git checkout master
git revert -n dev..master

第三步:git commit 即可,撤销完毕的 dev 分支可以删除。

总结

撤销多次提交,如果是肉眼可数的几次提交需要撤销就用第一种,如果是很多次提交数不过来的那种情况,就用第三种

你可能感兴趣的:(Git)