前言
有时候,我们开发的一些功能不会上线,或者有问题,需要回滚代码。
当有多人合作的时候,可能造成回滚的代码“重生”,这是操作不当造成的。
我们需要做一些操作避免这些问题。
本地回滚
通过 log 获取回滚的 commit id
git log
通过 reset 命令回滚代码
git reset --hard {commit-id}
回滚远程
本地回滚 操作完成之后,将代码推送到远程(强推)
git push origin {branch-name}
本地分支重新同步远程代码
多人合作中,如果某个同事对远程代码进行了回滚,而此时我们直接 pull 远程的代码,本地会进行合并,将本地的脏代码再次合并到此分支上。
所以我们在远程分支回滚之后,需要重新同步远程分支。
这里提供两中方式:
方法一
删除本地分支
重新 fetch 远程分支
删除本地分支
重新 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}
------------------------------------------------我是分割线---------------------------------------------------------------
git更换远程仓库
git remote -v 查看现在的远程仓库地址
git remote rm origin 删掉
git remote add origin git——url 重新添加地址
git放弃某一个文件
git status 查看哪些改动的文件
git checkout -- filename