我的存储库中有一个 SCSS 文件,还有几个存储库。我们称之为
target.scss
。它是其中唯一的文件,包含少量修改过的选择器。
我已经修改了
target.scss
。
我想要做的是git merge stash@{2}
(它的位置),并让 git 像任何其他合并一样对待它。也就是说,我想要 Git 报告冲突,这样我就可以解决冲突然后
git add
,提交并推送。我知道还有其他方法可以做到这一点。是的,我可以承诺并申请。是的,我可以启动一个新分支,应用并重新设置基准。甚至合并。但我希望避免在执行合并之前进行提交。
是否存在一种模式,我可以在其中触发从我的存储到我目前脏的 HEAD 的合并,处理合并冲突,然后提交,就像我只是手动合并它们一样?
我可以用
git diff stash@{2} target.scss
diff
文件,但我无法弄清楚如何将 git 置于“合并冲突”模式来解决相同问题。我应该看
diff
而不是
merge
吗?
muhqu的这篇文章,它非常接近为我提供了答案;我只需要稍微调整一下。
另一个答案建议:
git stash show -p | git apply -3 && git stash drop
这接近我想要的,尽管它会:
git stash show -p stash@{2} # This will select the stash 2 nodes back,
# and create a patch from it.
-C1
标志修改为
git apply
语句来完成。所以:
git apply -3 -C1
这本质上是告诉 Git,“只要该文件中的任何行匹配,就假定它是一个有效的应用程序。尝试使用 3 路合并进行合并。否则,回退到普通合并。”
&& git stash drop