如何恢复被他人删除提交历史的Git master分支?
解决远程Master分支被误覆盖,替换为Other_Branch的方案
核心思路
由于当前远程master与other_branch的提交历史完全独立,无法通过常规合并/PR操作同步,最直接的方案是让master分支直接继承other_branch的完整提交历史,覆盖掉现有问题提交。
前提确认
- 确保
other_branch包含所有需要保留的代码与提交记录,无任何问题 - 通知团队成员暂停对远程
master的所有操作,避免冲突
命令行操作(最可靠)
- 拉取远程仓库最新分支数据:
git fetch origin
- 切换到本地
master分支:
git checkout master
- 将本地
master强制重置为远程other_branch的最新状态(完全继承其提交历史):
git reset --hard origin/other_branch
- 强制推送到远程
master(因历史不兼容,必须用强制推送覆盖):
git push origin master --force
注意:
--force会彻底覆盖远程master的现有内容,确认无误后再执行。
GitHub网页端操作(无需命令行)
如果不熟悉命令行,可直接在GitHub网页完成:
- 打开仓库的「Branches」页面,找到
other_branch,点击其提交记录,复制最新提交的SHA哈希值 - 进入仓库「Settings」→「Branches」,找到
master分支,点击右侧「Edit」按钮 - 在「Target」输入框粘贴刚才复制的SHA值,点击「Update branch」
- (可选)如果之前
master有分支保护规则,操作前需临时关闭,完成后可重新开启
团队后续同步操作
所有团队成员需同步本地master分支,避免后续冲突:
git checkout master git fetch origin git reset --hard origin/master
内容的提问来源于stack exchange,提问作者MattyBRappps
相关产品推荐
相关产品推荐

