Git-如何回滚代码 revert和reset

1.git revert和git reset的区别

git revert 是撤销某次操作,此次操作之前或之后的commit都会被保留
git reset 是撤销某次提交,此次之后的修改都会被退回到暂存区

例子,有三个commit, git log:

commit3: #3  xxid_3
commit2: #2  xxid_2
commit1: #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 ,取消了add
git reset -hard :取消了commit ,取消了add,取消源文件修改
git reset –hard HEAD~3   会将最新的3次提交全部重置,就像没有提交过一样。
git reset –hard commit_xxid  回退到 commit_xxid版本
git push origin HEAD --force  然后推送到远程仓库

3.将原来多次的git提交记录合并为一个

通过git reset –soft commit_xxid的方法,可以将原来多次的git提交记录合并为一个。

你可能感兴趣的:(Git)