如何执行git pull仅同步分支状态,而不拉取文件变更?
问题
我有分支A,基于它创建了更进阶的分支B。通常A上的所有变更都应合并到B中,但由于分支间存在差异,某个特定功能在A和B上分别以不同方式实现。我希望在分支B上执行git pull origin A,但不实际拉取任何文件变更,让Git认为此时B与A已同步,后续执行git pull origin A时会提示无变更(直到A有新提交)。请问这是否可行?
解决方案
可行,你可以通过指定ours合并策略来实现这个需求,具体步骤如下:
切换到分支B:
git checkout B先拉取远程仓库的最新状态(确保获取到A分支的最新提交):
git fetch origin执行合并命令,使用
ours策略合并远程A分支的最新版本:git merge -s ours origin/A
这个命令的作用是:
- 生成一个新的合并提交,但完全不会修改B分支上的任何文件内容,保留B当前的所有代码状态。
- 在Git的提交历史中标记B已经合并了
origin/A的当前最新提交,让Git判定两者已同步。
之后再执行git pull origin A时,Git会检测到origin/A的最新提交已经被包含在B的历史中,就会提示Already up to date.,直到A分支有新的提交产生。
内容的提问来源于stack exchange,提问作者user1483597
相关产品推荐
相关产品推荐

