我正在合并一个可能有很多冲突的远程分支机构。我怎么知道它是否会有冲突?
我没看到任何类似于,git合并的预演。
我正在合并一个可能有很多冲突的远程分支机构。我怎么知道它是否会有冲突?
我没看到任何类似于,git合并的预演。
当前回答
我做了一个别名来做这件事,就像一个魅力,我这样做:
git config --global alias.mergetest '!f(){ git merge --no-commit --no-ff "$1"; git merge --abort; echo "Merge aborted"; };f '
现在我只需调用
git mergetest <branchname>
看看是否有任何冲突。
其他回答
你可以在看到冲突后执行git merge -abort。
这可能很有趣:从文档中:
如果您尝试合并,导致复杂的冲突,并希望 重新开始,你可以用git merge -abort恢复。
但你也可以用幼稚(但缓慢)的方式来做:
rm -Rf /tmp/repository
cp -r repository /tmp/
cd /tmp/repository
git merge ...
...if successful, do the real merge. :)
(注意:仅仅克隆到/tmp不能工作,你需要一个副本,以确保未提交的更改不会冲突)。
我知道这在理论上是跑题的,但对于从谷歌搜索到这里的人来说,实际上是非常切题的。
当有疑问时,你可以使用Github界面创建一个pull-request,并检查它是否表明干净的合并是可能的。
我做了一个别名来做这件事,就像一个魅力,我这样做:
git config --global alias.mergetest '!f(){ git merge --no-commit --no-ff "$1"; git merge --abort; echo "Merge aborted"; };f '
现在我只需调用
git mergetest <branchname>
看看是否有任何冲突。
如前所述,传入——no-commit标志,但为了避免快进提交,也传入——no-ff,如下所示:
$ git merge --no-commit --no-ff $BRANCH
检查阶段性的变化:
$ git diff --cached
你可以撤销合并,即使是快进合并:
$ git merge --abort