1.git revert和git reset的区别
git revert
是撤销某次操作,此次操作之前或之后的commit都会被保留 git reset
是撤销某次提交,此次之后的修改都会被退回到暂存区
例子,有三个commit, git log:
commit3: #3 xxid_3commit2: #2 xxid_2commit1: #1 xxid_1复制代码
执行 git revert xxid_2
之后: commit2被撤销了,但是commit1和commit3还存在
执行 git reset --soft xxid_2
之后: commit3被撤销了,commit1和commit2还存在,commit3 出现在暂存区
执行 git reset --hard xxid_2
之后: commit3被撤销了,commit1和commit2还存在,commit3彻底消失
2.git reset --soft/--mixed/--hard
git reset -soft :取消了commit git reset -mixed(默认) :取消了commit ,取消了addgit reset -hard :取消了commit ,取消了add,取消源文件修改复制代码
git reset –hard HEAD~3 会将最新的3次提交全部重置,就像没有提交过一样。git reset –hard commit_xxid 回退到 commit_xxid版本复制代码
3.将原来多次的git提交记录合并为一个
通过git reset –soft commit_xxid的方法,可以将原来多次的git提交记录合并为一个。