Могу ли я переименовать LOCAL, REMOTE и BASE в git mergetool? - PullRequest
12 голосов
/ 24 марта 2010

Допустим, я делаю перебазирование B ветки на master и возникает конфликт. git открывает инструмент слияния по умолчанию с 3 файлами в качестве входных данных: file.LOCAL, file.BASE, file.REMOTE (они называются немного по-разному, но LOCAL, BASE и REMOTE находятся в именах файлов и как они различаются ).

Теперь, согласно man-странице mergetool: $ LOCAL задается как имя временного файла, содержащего содержимое файла в текущей ветке; Для $ REMOTE задано имя временного файла, содержащего содержимое файла для слияния, а для $ BASE задано имя временного файла, содержащего общую базу для слияния.

Это действительно не имеет смысла для меня. МЕСТНОЕ текущее состояние филиала. Где я заблудился, это ОСНОВНЫЕ и УДАЛЕННЫЕ. Итак, мой вопрос:

Можно ли заставить git использовать имя ветви вместо LOCAL и аналогично более значимые имена, кроме BASE и REMOTE? Например, если имя ветви - FeatureX и BASE = файл, как он существует в master, есть ли способ заставить git заменить FeatureX для LOCAL и master для BASE, чтобы было более очевидно, откуда исходит источник ? Это особенно проблема при выполнении ребазинга.

Ответы [ 2 ]

8 голосов
/ 24 марта 2010

Можно ли заставить git использовать имя ветки вместо LOCAL

Я так не думаю, но если вы объявите в своем mergetool графический инструмент слияния , вы можете назвать этот внешний инструмент с выбранным вами названием:

(фрагмент скрипта вызова инструмента слияния)

t1="'$4 (current branch)'"
t2="'(common ancestor)'"
t3="'(to be merged)'"

    "C:/Program Files/Araxis/Araxis Merge/Compare.exe" -max -wait -merge -3 -a2 -title1:${t1} -title2:${t2} -title3:${t3} "$alocal" "$base" "$remote" "$result" 

Таким образом, вам будет легче увидеть, что к чему.

3 голосов
/ 21 февраля 2012

Я не совсем уверен, что это объяснение верно, но BASE будет точкой, в которой обе версии файла были одинаковыми. Это может быть то, что вы называете «родителем» в Git-дереве.

Когда они разошлись, вы получили LOCAL и REMOTE, которые конфликтуют друг с другом.

...