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 协议 ,转载请注明出处!