当拉出和解决冲突时,我有一个实例,可以查看所有更改并提交冲突解决方案。
当没有冲突时,我想避免自动合并,并在合并更改之前查看所做的更改与要提取的更改之间的差异。
如果没有冲突,是否可以查看所有更改(我所做的更改与我要拉出的分支之间的差异之间的差异?
我看到两个选择。首先,我将提供一个可以按要求从字面上回答您的问题的工具,但是老实说这不是我建议的。因此,我将给出一个解决方案,我将考虑改用...
为了避免合并 ...
您可以使用fetch
代替pull
。 pull
的重点是要获取并随后自动进行合并的快捷方式,因此,如果您不希望合并,则不必拉出。然后,您将使用远程跟踪参考(例如,在检查remotes/origin/other_branch
时类似other_branch
之类的东西)来引用另一个分支。
但是我不清楚在这种情况下您究竟会如何区分。您可以通过
查看“他们的更改”git diff $(git merge-base remotes/origin/other_branch HEAD) remotes/origin/other_branch
和“我们的更改”]
git diff $(git merge-base remotes/origin/other_branch HEAD) HEAD
但是您基本上必须在头脑中执行合并才能了解结果。所以...
您可以做什么
...听起来您真的想避免合并的[[commit
,而不是合并本身。 (这更类似于发生冲突时发生的情况。)所以git pull --no-commit
然后检查结果,并决定是否对其进行编辑,提交或丢弃。
即使不是每次都必须要做的,因为合并(只要没有被推送)就可以很容易地撤消。所以我要做的是让合并发生。用类似]的结果检查结果
git diff HEAD^
git reset --hard HEAD^
然后使用
--no-commit
选项重新运行拉(或只是合并)。