说说git-reset和git-revert的理解
# 是什么
- git reset
- git revert
# 特性
都是回退版本行为
# 怎么用
# git reset
// 没有指定ID, 暂存区的内容会被当前ID版本号的内容覆盖,工作区不变
git reset
// 指定ID,暂存区的内容会被指定ID版本号的内容覆盖,工作区不变
git reset <ID>
- --mixed(默认):默认的时候,只有暂存区变化
- --hard参数:如果使用 --hard 参数,那么工作区也会变化
- --soft:如果使用 --soft 参数,那么暂存区和工作区都不会变化
# git revert
撤销某个commit
git revert <commit_id>
如果撤销前一个版本
git revert HEAD
撤销前前一次
git revert HEAD^
# 区别
git reset 把HEAD向后移一位,git revert向前移一位,提交内容刚好和前一个内容相反
git reset 删除commit, git revert 增加一个commit
git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,之前提交合并的代码仍然存在,导致不能够重新合并
但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入
不想要代码用git reset
以后还要用的话用git revert
上次更新: 2021/12/19, 18:05:42