Git回滚
前言
有时候,我们开发的一些功能不会上线,或者有问题,需要回滚代码。
当有多人合作的时候,可能造成回滚的代码“重生”,这是操作不当造成的。
我们需要做一些操作避免这些问题。
本地回滚
通过 log
获取回滚的 commit id
git log
通过 reset
命令回滚代码
git reset --hard {commit-id}
回滚远程
本地回滚
操作完成之后,将代码推送到远程(强推)
git push origin {branch-name}
本地分支重新同步远程代码
多人合作中,如果某个同事对远程代码进行了回滚,而此时我们直接 pull
远程的代码,本地会进行合并,将本地的脏代码再次合并到此分支上。
所以我们在远程分支回滚之后,需要重新同步远程分支。
这里提供两中方式:
方法一
- 删除本地分支
- 重新
fetch
远程分支
// 删除本地分支,此时需要 checkout 到别的分支上
git branch -D {branch-name}
// 重新 fetch 远程分支
git fetch origin {branch-name}
// checkout 到此分支
git checkout {branch-name}
方法二
- 重新获取远程分支的最新 commit id
- 手动回滚到此 commit id
// 重新获取远程分支的最新 commit id
git remote update origin --prune
// 手动回滚到此 commit id
git reset --hard origin/{branch-name}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!