首页 > 解决方案 > 如何用另一个(上游)分支覆盖 GIT 分支中的所有文件?

问题描述

我在 Github 有一个项目的分支。

我不小心将主分支中的本地更改提交并推送到 origin/master (Github)。更改是由自动脚本完成的,因此大约有 180 个文件已更改,因此无法手动还原更改并进行新的提交。

我找到了关于回滚到旧提交的本教程。

我试过了

  git checkout master
  git checkout <first commit-id> .
  git pull
  git commit -a -m "reverting back to older commit, so upstream can be cleanly merged"
  git push
  git fetch upstream
  git merge upstream/master
  git commit -a -m "updated with upstream/master"
  git push

但是,这不会使用来自上游/主服务器的当前代码更新所有文件。所有文件都像<first commit-id>.

如果我不得不猜测 GIT 认为提交比上游/主更新,那么这是正确的。但我不太了解 GIT。

其他人建议我应该删除回购并重新分叉项目。

但我猜 GIT 应该可以选择用旧版本替换/覆盖整个(主)分支,还是只用当前的上游/主分支?

标签: gitgithub

解决方案


git reset --hard upstream/master

这会将当前分支重置为 upstream/master 的提交。


推荐阅读