вижу два варианта. Сначала я дам ответ, который отвечает на ваш вопрос буквально в том виде, в котором он был задан, но, честно говоря, это не то, что я бы порекомендовал. Тогда я дам решение, которое я рассмотрю вместо этого ...
Чтобы избежать слияния ...
Вы можете использовать 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
но тогда вам, по сути, придется выполнить слияние в уме, чтобы понять результат. Итак ...
Что вы можете сделать вместо этого ...
Похоже, вы действительно хотите избежать коммита слияния, не само слияние. (Это больше похоже на то, что происходит в случае конфликта.)
git pull --no-commit
Затем изучите результат и решите, отредактировать его, зафиксировать или выбросить.
Даже это на самом деле не нужно делать каждый раз, потому что объединение (если оно не было выдвинуто) может быть легко отменено. Так что я бы сделал, пусть произойдет слияние. Изучите результат примерно так:
git diff HEAD^
Если вам не нравится результат, вы можете
git reset --hard HEAD^
, а затем, возможно, повторно запустить пул (или просто объединить) с помощью --no-commit
опция.