Your branch and 'origin/master' have diverged

本文介绍了解决Git中因分支历史不一致导致的push失败问题的方法。通过使用`git fetch`、`git reset --hard origin/master`及`git reflog`等命令,能够使本地分支与远程分支保持同步,避免合并冲突。此外,还提到了一种强行合并的方案,但可能会丢失部分历史记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

  • 经理建立仓库, 并第一次提交.
  • tomclone并添加文件. push不上去, 合并(pull)时报历史不一致问题.

问题

git status发现:
Your branch and 'origin/master' have diverged

解决

// tom的命令行
git fetch
git reset --hard origin/master    // 回退到最初状态

git reflog
// 经理的命令行
git reflog

// 可以发现两者现在的版本号一致了. 

clipboard.png

经过上述操作, 应该就是将两个用户的历史记录统一了. 多用户协同开发, 应该保证每个用户的提交记录一样(个人理解), 否则就会出现分支不一致, push不上去的问题.

除了上述解决办法外, 还有简单粗暴的做法, 但是个人不建议.
当提示分歧时会提示, 需要先git pull, 即将远程与本地合并, 但是这样会出现历史记录不一致问题. 这时可以用以下命令, 强行合并(忽略不相关历史).

pull origin master --allow-unrelated-histories

这样, 应该是会丢失当期那分支的历史记录.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值