maodouchen / note

学习笔记
0 stars 0 forks source link

git reset vs git revert #8

Open maodouchen opened 5 years ago

maodouchen commented 5 years ago

reset

image

revert

image

Revert 撤销一个提交的同时会创建一个新的提交,他不会像reset一样删除提交历史。会找到某个提交a,然后创建一个新的commit来撤销提交a的修改。 如下图所示。 image

用法

git revert commit 删掉这个commit的修改 git revert -m 1 commit 删掉这个merge commit的修改 通常情况下 我们都是将开发分支和并到master分支
image

这个时候我们无法直接Git revert cbd4ea7a4098ee23b348a7c1acf3f040565dd02e(merge的commit) 因为git不清楚我们要恢复哪个分支,是开发分支还是master分支。这个时候m就派上用场了

quote here git revert -m 1 cbd4ea7a4098ee23b348a7c1acf3f040565dd02e 代表恢复master分支上的这个合并commit。 这样我们就不用一个一个commit revert了,可以直接将merge的commit删掉

区别:

Git revert 不会删除提交历史,而Git reset会删除提交历史,所以git revert可以用在公共分支上,而reset可以用在私有分支上。 Git reset xxx 是将xxx之后的所有commit都撤销。而git revert可以只撤销某个commit