You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git合并master至空development分支时提示“Already up to date”的解决办法

问题描述

我有master和development两个分支(development是从master检出的),已经清空了development分支的本地和远程内容,现在想把master的所有文件合并到development,执行了以下命令:

git checkout master
git fetch
git pull
git checkout development
git fetch
git pull
git merge master

但得到提示:

Already up to date.

尝试对两个分支执行git reset --hard也没用。git log --oneline --graph --decorate master development的输出如下:

* 56e4fdb (HEAD -> development, origin/development)  purge
*   eb6a6f7 Merge branch 'development' of <url> into development
|\
| * bd3960e Edited config file
| * 8293db6 Edited config file
| * f1d6ac8 merging master
| * 2e41d5a merging master
| * 8ad654e merging master
| * c1a298b merging master
* | a8b761f Edited config file
* | 4426459 Edited config file
* | afb50cc merging master
* | de63abb merging master
* | a62a3ef merging master
* | c4cc98c merging master
* | e34c8f5 (origin/master, master)  master
* | b3be19d Merge branch 'master' of <url>
|\|
| * 158c847 Creating config
| * 7ad8a6c Creating config
| * ca61c69 Init config
| * e84261a Initial commit with default config
* b1f686d  master
* 1f31dd8  master
解决方法

从git log输出能看出,development分支的提交历史已经包含了master的所有提交(master的最新提交e34c8f5在development的历史线中),所以合并时会提示“Already up to date”。你之前清空分支是新增了一个purge提交,但这只是在development的历史上添加了清空内容的操作,并没有改变分支间的历史包含关系。

要让development的内容完全和master一致,按以下步骤操作:

  • 切换到development分支:
git checkout development
  • 将本地development分支重置到master的最新提交,这样本地分支内容就会和master完全一致:
git reset --hard master
  • 由于远程development分支的历史和本地现在的历史不一致,需要强制推送到远程(注意:此操作会覆盖远程development的历史,确认没有其他团队成员在该分支上工作再执行):
git push --force origin development

执行完这些步骤后,development分支的本地和远程内容就会与master完全同步。

内容的提问来源于stack exchange,提问作者Johnyb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 03:33:43