在拉动并查看更改时避免git自动合并

问题描述 投票:1回答:1

当拉出和解决冲突时,我有一个实例,可以查看所有更改并提交冲突解决方案。

当没有冲突时,我想避免自动合并,并在合并更改之前查看所做的更改与要提取的更改之间的差异。

如果没有冲突,是否可以查看所有更改(我所做的更改与我要拉出的分支之间的差异之间的差异?

git
1个回答
0
投票

我看到两个选择。首先,我将提供一个可以按要求从字面上回答您的问题的工具,但是老实说这不是我建议的。因此,我将给出一个解决方案,我将考虑改用...

为了避免合并 ...

您可以使用fetch代替pullpull的重点是要获取并随后自动进行合并的快捷方式,因此,如果您不希望合并,则不必拉出。然后,您将使用远程跟踪参考(例如,在检查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选项重新运行拉(或只是合并)。

© www.soinside.com 2019 - 2024. All rights reserved.