意外同步两个Git分支致日志完全一致,如何修复?
Git分支同步混乱的解决方法(Git 2.25.1版本)
现状分析
从你提供的git log能看出,dev和releaseBranch当前指向同一个提交,导致两者提交历史完全重合,还出现了HEAD同时关联两个分支的异常状态。核心目标是把releaseBranch恢复到它原本的提交历史,和dev分支重新分离。
解决步骤
找回releaseBranch原本的提交哈希
执行以下命令查看所有分支的操作日志,找到releaseBranch在被错误同步前的提交记录(通常会标注releaseBranch@{n}的条目,对应的哈希值就是你需要的):git reflog如果你能通过项目历史确定
releaseBranch本该指向的提交,也可以直接使用该提交的哈希值。强制重置releaseBranch到原提交
假设你找到的原提交哈希是old-release-hash,执行命令将releaseBranch强制指向该提交:git branch -f releaseBranch old-release-hash验证结果
切换到releaseBranch并查看提交历史,确认已恢复到原本状态:git checkout releaseBranch git log --oneline再切换回
dev分支,确认其提交历史不受影响:git checkout dev git log --oneline
额外说明
- 如果不确定原提交哈希,可以用
git log --all --graph --oneline查看所有分支的完整提交图,直观找到releaseBranch应该归属的历史线。 - 操作前建议先备份当前仓库(比如复制整个文件夹),避免误操作导致数据丢失。
内容的提问来源于stack exchange,提问作者Olumide
相关产品推荐
相关产品推荐

