git - 如何用另一个(上游)分支覆盖 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 应该可以选择用旧版本替换/覆盖整个(主)分支,还是只用当前的上游/主分支?
解决方案
git reset --hard upstream/master
这会将当前分支重置为 upstream/master 的提交。
推荐阅读
- python-3.x - 如何使用 boto3 找到我需要的 aws 命名空间
- python - 如何在seaborn中填充线图下的区域
- timezone - 为什么使用pytz时萨摩亚的偏移量不是+13或+14?
- latex - 如何在乳胶中手动设置部分编号
- python - MongoDB:如何在其聊天室有电话号码的地方查找消息?
- django - 处理来自 url 和视图的多个链接的最佳方法
- java - 使用 Bittrex HTTP API 的 Java“握手期间远程主机关闭连接”
- c++ - 二维数组,一些单元格保存特定数据
- javascript - 来自 Json Data 的 React Table 动态列和行
- jquery - 选择要在另一个表单中发布的表单中的输入值