git 版本回退

来源:互联网 发布:蝙蝠侠 超人 知乎 编辑:程序博客网 时间:2024/05/08 22:57

git版本回退(浅谈 git reset 与 git revert)

git这个工具,程序员大爱,实在是太优秀了。

不过有的时候,可能需要回退到前一个版本,或者前n个版本,或者要丢弃中间的某一个版本,这个时候,该git reset 与 git revert 出场了。
不得不说,两者各有千秋,在不同的场景下,择合适用之。

git revert af123xxxx (想要丢弃的那个commit的版本号)

意为 仅撤销掉 版本号af123xxx 对应的提交 既不会影响到该版本之后的提交也不会影响到该版本之前的提交,并且会新增加一个版本号,push 下即可,简单易用。

git reset af123xxxx (想要回到的那个commit的版本号)

意为 回到af123xxxx 这个版本, 该版本之后的提交都丢弃,但不会新增版本号,也就是说那些代码其实都还在的,如果需要彻底删除掉那些代码,这时候需要 往远程推一下。
需要注意的是,此时的版本号比远程的要低,直接push 的话,是push 不动的,需要 -f (force) 参数来帮忙。

下面记录下某次的回退。
1) git reset a2bcxxxxxxxxxxx --hard

2) git log

3) git status

On branch masterYour branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.  (use "git pull" to update your local branch)nothing to commit, working directory clean

OK,成功回退了三个commit!

4) git push -f origin master

推到远程,OK,3个版本的代码已弃。

原创粉丝点击