Git Subtree вытягивает и автоматически фиксирует слияние

avatar
keyboard
8 августа 2021 в 18:17
115
1
0

Как я могу выполнить извлечение поддерева git и автоматически зафиксировать слияние?

Вот как я вызываю извлечение поддерева:

git subtree pull --prefix Utils UtilsRepo master --squash

Проблема в том, что это часто открывает редактор vi в Терминале, который я только что ввел в команду (у меня OSX). И тогда мне нужно ввести «: q», чтобы снова закрыть его. Так как у меня есть несколько поддеревьев, и я хочу получить их все последовательно, вводить ":q" после различных извлечений довольно неудобно.

Как это автоматизировать?

Источник
phd
8 августа 2021 в 19:01
1

GIT_EDITOR=true git subtree pull --prefix Utils UtilsRepo master --squash

keyboard
9 августа 2021 в 17:43
0

Спасибо, что это делает?

phd
9 августа 2021 в 18:17
1

Он запускает вашу команду git subtree pull --prefix Utils UtilsRepo master --squash с переменной окружения GIT_EDITOR, установленной на программу true, которая равна /bin/true. Когда Git нужно запустить редактор, он проверяет переменную окружения и запускает заданную программу с именем файла (сохраненное сообщение фиксации). Программа /bin/true просто возвращается, и Git с радостью принимает неизмененное сообщение из файла.

Ответы (1)

avatar
bk2204
8 августа 2021 в 19:28
1

В общем, если вы хотите выполнить какое-либо слияние, не открывая редактор для описания сообщения, установите для переменной среды GIT_MERGE_AUTOEDIT значение no. Например, у меня есть это в моей конфигурации оболочки, но если вы хотите, чтобы это было только в этом случае, вы можете использовать псевдоним.

keyboard
9 августа 2021 в 17:43
0

Спасибо, мне просто добавить GIT_MERGE_AUTOEDIT = нет строки?

bk2204
9 августа 2021 в 18:38
1

Если вы поместите его в конфигурацию своей оболочки, вам нужно будет написать его так: export GIT_MERGE_AUTOEDIT=no. Вы не можете добавлять дополнительные пробелы вокруг знака равенства, и требуется export.