git revert xxxx -m 1 git代码回滚

git revert 类似于裁剪,可以想象成截取DNA片段,它不会影响剪裁所在位置commit后的操作,而reset会直接抛弃此commit及之后的全部提交,对于多人合作的分支不太安全。

第一步:查看你要回滚的某一次commit的详情,如果是merge得来的commit,会出现Merge项信息,表示出此commit的来源,即merge开始的位置和结束的位置。
git show xxxx --stat

$ git show f248495 --stat
commit f2484959aba72276bc68f06e1cd2ed80a9d6723e
Merge: 342a113 8f17424

git revert xxxx -m 1 git代码回滚_第1张图片
主分支:主动merge其他分支的分支

第二步:普通commit(没有Merge项信息)直接revert 即可;
revert含有Merge项信息的commit,需要指定 -m 参数。
1代表主分支开始merge操作的位置的commit;
2代表被合入分支的最顶端的commit;
12之间的所有commit(包括2),就是该次merge操作所带入的新内容。-m 1就代表回滚该次merge所带入的全部内容(即保留1,回滚掉 (1-2] ,抽掉之间的全部commit)
git revert xxxx -m 1

:如果分支一直处于REVERTING状态,可能是你最后选择了保留新内容,所以此次回滚没有意义,这时可以选择终止revert操作
git revert --abort

你可能感兴趣的:(git,git,github)