Русский ▾ Topics ▾ Latest version ▾ git-merge-index last updated in 2.35.0

НАЗВАНИЕ

git-merge-index - Выполнение слияния для файлов, требующих слияния

ОБЗОР

git merge-index [-o] [-q] <программа-слияния> (-a | ( [--] <файл>…​) )

ОПИСАНИЕ

Эта команда находит <файл>(ы) в индексе и, если есть какие-либо записи слияния, передаёт SHA-1-хеш для этих файлов как аргументы 1, 2, 3 (пустой аргумент, если файла нет) и <файл> как аргумент 4. Режимы файлов для трёх файлов передаются как аргументы 5, 6 и 7.

ПАРАМЕТРЫ

--

Не рассматривать остальные аргументы командной строки в качестве параметров.

-a

Выполнить слияние для всех файлов в индексе, которые нуждаются в слиянии.

-o

Вместо остановки при первом неудачном слиянии выполнить все сразу — продолжить слияние, даже если предыдущие слияния вернули ошибки, и вернуть код ошибки только после всех слияний.

-q

Не жаловаться на сбой программы слияния (сбой программы слияния обычно указывает на конфликты во время слияния). Это предназначено для высокоуровневых программ (porcelains), которые могут захотеть выдавать пользовательские сообщения.

Если git merge-index вызывается с несколькими <файл>ами (или -a), то он обрабатывает их по очереди, останавливаясь, только если слияние возвращает ненулевой код завершения.

Обычно это выполняется со сценарием, вызывающим имитацию Git команды merge из пакета RCS.

Пример сценария под названием git merge-one-file включён в дистрибутив.

ВНИМАНИЕ ВНИМАНИЕ ВНИМАНИЕ! Порядок «объектов слияния» в Git отличается от порядка объектов слияния в программе merge из RCS. В приведённом выше порядке оригинал идёт первым. Но порядок аргументов для программы трёхстороннего слияния merge — оригинал в середине. Не спрашивайте меня, почему.

Примеры:

torvalds@ppc970:~/merge-test> git merge-index cat MM
This is MM from the original tree.		# оригинал
This is modified MM in the branch A.		# merge1
This is modified MM in the branch B.		# merge2
This is modified MM in the branch B.		# текущее содержимое

или

torvalds@ppc970:~/merge-test> git merge-index cat AA MM
cat: : No such file or directory
This is added AA in the branch A.
This is added AA in the branch B.
This is added AA in the branch B.
fatal: программа слияния завершилась ошибкой

где последний пример показывает, как git merge-index перестанет пытаться выполнить слияние, как только что-либо вернёт ошибку (т.е. cat вернул ошибку для файла AA, потому что он не существовал в оригинале, и, таким образом, git merge-index даже не пытался выполнить слияние для MM).

GIT

Является частью пакета git[1]