git的回滚

使用git 管理代码比较方便。当代码提交后发现问题时,想要回滚,要怎么做呢?

git 有 revert 和 reset 两种方式。但用途并不一样:

git revert 撤销

git reset 回退。

例子:

如果先后做了3次提交 commitA、commitB、commitC,分别改了A文件、B文件、C文件。

如果在git中查看

 
  1. commitC

  2. commitB

  3. commitA

当前是commitC。

撤销:使用git revert

 
  1. git revert commit-id

  2. // 其中,commit-id是目标commit的log代号,就是每次提交会自动生成的很长一串的字符代号,取前7位即可

想要撤销B文件的更改

git revert commitB

想要撤销C文件的更改

git revert commitC

所以git revert 是撤销某次commit的更改,和其他commit无关。

代码出问题了,想要回滚到之前版本怎么办?

回滚:使用git reset 

git reset --hard HEAD~n

其中 HEAD 表示当前位置,即最后一次提交。

回滚到往前几次的提交呢? 例如,

回滚到前一次

 
  1. git reset --hard HEAD^ // ^表示往前一次

  2. git reset --hard HEAD~1

回滚到前2次

 
  1. git reset --hard HEAD^^ // ^表示往前一次

  2. git reset --hard HEAD~2

回滚到前100次

git reset --hard HEAD~100

猜你喜欢

转载自blog.csdn.net/lucyxu107/article/details/81181911