我正在合并一个可能有很多冲突的远程分支机构。我怎么知道它是否会有冲突?
我没看到任何类似于,git合并的预演。
我正在合并一个可能有很多冲突的远程分支机构。我怎么知道它是否会有冲突?
我没看到任何类似于,git合并的预演。
当前回答
不完全是那样的。但是您可以使用——no-commit选项,这样它就不会在合并后自动提交结果。通过这种方式,您可以检查合并,如果需要的话,还可以在不破坏提交树的情况下撤消合并。
其他回答
如前所述,传入——no-commit标志,但为了避免快进提交,也传入——no-ff,如下所示:
$ git merge --no-commit --no-ff $BRANCH
检查阶段性的变化:
$ git diff --cached
你可以撤销合并,即使是快进合并:
$ git merge --abort
为你的工作副本制作一个临时副本,然后合并,并将两者区分开来。
我使用request-pull git命令来做到这一点。它允许您查看合并时可能发生的每个更改,但无需对本地或远程存储库进行任何操作。
例如,假设您想将一个名为“feature-x”的分支合并到您的主分支中
git request-pull master origin feature-x
将向您展示将发生什么(不做任何事情)的摘要:
The following changes since commit fc01dde318:
Layout updates (2015-06-25 11:00:47 +0200)
are available in the git repository at:
http://fakeurl.com/myrepo.git/ feature-x
for you to fetch changes up to 841d3b41ad:
----------------------------------------------------------------
john (2):
Adding some layout
Refactoring
ioserver.js | 8 +++---
package.json | 7 +++++-
server.js | 4 +--
layout/ldkdsd.js | 277 +++++++++++++++++++++++++++++++++++++
4 files changed, 289 insertions(+), 7 deletions(-)
create mode 100644 layout/ldkdsd.js
如果您添加-pparameter,您还将获得完整的补丁文本,就像您对每个更改的文件执行git diff一样。
我知道这在理论上是跑题的,但对于从谷歌搜索到这里的人来说,实际上是非常切题的。
当有疑问时,你可以使用Github界面创建一个pull-request,并检查它是否表明干净的合并是可能的。
这可能很有趣:从文档中:
如果您尝试合并,导致复杂的冲突,并希望 重新开始,你可以用git merge -abort恢复。
但你也可以用幼稚(但缓慢)的方式来做:
rm -Rf /tmp/repository
cp -r repository /tmp/
cd /tmp/repository
git merge ...
...if successful, do the real merge. :)
(注意:仅仅克隆到/tmp不能工作,你需要一个副本,以确保未提交的更改不会冲突)。