git rebase过程中如何自动应用--ours和--theirs冲突处理规则
解决方案
方案1:尚未启动rebase操作
直接在rebase命令中指定合并策略选项即可全局生效:
- 优先采纳目标分支(rebase 操作中的
ours侧)的所有冲突内容:git rebase -X ours <待变基的目标分支名> - 优先采纳待变基分支(rebase 操作中的
theirs侧)的所有冲突内容:git rebase -X theirs <待变基的目标分支名>
注意:rebase 场景下的
ours和theirs定义和 merge 场景相反:ours指你正在往上面变基的目标分支内容,theirs指你当前正在变基的本地分支的提交内容。
方案2:已经处于rebase过程中,不想终止重开
如果只需要对特定文件file.py应用固定策略,可以在Git Bash中运行简单的循环脚本自动处理后续所有冲突:
自动采纳ours版本的脚本:
while true; do # 对冲突的指定文件应用ours规则 git checkout --ours file.py git add file.py # 继续rebase,无冲突则结束循环 if git rebase --continue; then break fi done
自动采纳theirs版本的脚本:
仅需把上面脚本中的--ours替换为--theirs即可。
如果需要对所有冲突文件都应用同一规则,把
git checkout --ours file.py中的file.py替换为.即可。
注意事项
该方案仅适用于你确定对应文件的所有冲突都可以按固定规则处理的场景,否则可能会导致不需要的内容丢失。
内容的提问来源于stack exchange,提问作者OverLordGoldDragon
相关产品推荐
相关产品推荐

