АнглийскийФранцузскийИспанский

Значок OnWorks

git-merge-base - Интернет в облаке

Запустите git-merge-base в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда git-merge-base, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


git-merge-base - Найдите как можно более хороших общих предков для слияния

СИНТАКСИС


мерзавец база слияния [-a | --all] ...
мерзавец база слияния [-a | --all] --octopus ...
мерзавец база слияния --is-предок
мерзавец база слияния --независимый ...
мерзавец база слияния - точка-вилка [ ]

ОПИСАНИЕ


мерзавец база слияния находит лучших общих предков между двумя коммитами для использования в трехстороннем режиме
слить. Один общий предок better чем другой общий предок, если последний
предок бывшего. Общий предок, у которого нет лучшего общего предка, - это
a лучший общий предокт.е. слияние Использование темпера с изогнутым основанием. Обратите внимание, что может быть более одной базы слияния
для пары коммитов.

РАБОТА РЕЖИМЫ


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

В более общем смысле, среди двух коммитов для вычисления базы слияния один определяется как
первый аргумент фиксации в командной строке; другая фиксация (возможно
гипотетический) коммит, который представляет собой слияние всех оставшихся коммитов в командной строке.

Как следствие, слияние Использование темпера с изогнутым основанием не обязательно содержится в каждом коммите
аргументы, если указано более двух коммитов. Это отличается от git-шоу-
филиал(1) при использовании с параметром --merge-base.

--осьминог
Вычислить лучших общих предков всех предоставленных коммитов для подготовки к n-way
слить. Это имитирует поведение мерзавец шоу-филиал --мердж-база.

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

--is-предок
Проверь, если первый является предком второго и выйдите с помощью
статус 0, если истина, или статус 1, если нет. Об ошибках сигнализирует ненулевой статус
это не 1.

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

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


-а, --все
Выведите все базы слияния для коммитов вместо одной.

ОБСУЖДЕНИЕ


Учитывая два коммита A и B, git merge-base AB выведет фиксацию, доступную из
изоферменты печени A и B через родительские отношения.

Например, с такой топологией:

о --- о --- о --- B
/
--- о --- 1 --- о --- о --- о --- А

база слияния между A и B is 1.

Учитывая три коммита A, B и C, git merge-base ABC вычислит базу слияния между A
и гипотетическая фиксация M, который представляет собой слияние B и C. Например, с этим
топология:

о --- о --- о --- о --- С
/
/ о --- о --- о --- Б
/ /
--- 2 --- 1 --- о --- о --- о --- A

результат git merge-base ABC равен 1. Это потому, что эквивалентная топология с
объединить фиксацию M между B и C это:

о --- о --- о --- о --- о
/\
/ о --- о --- о --- о --- М
/ /
--- 2 --- 1 --- о --- о --- о --- A

и результатом git merge-base AM будет 1. Совершить 2 также является общим предком между A
и M, Но 1 лучший общий предок, потому что 2 является предком 1, Следовательно, 2 не
база слияния.

Результатом git merge-base --octopus ABC является 2, потому как 2 лучший общий предок
всех коммитов.

Когда история включает в себя перекрестные слияния, может быть более одного лучший общий
предок для двух коммитов. Например, с такой топологией:

--- 1 --- о --- А
\ /
X
/\
--- 2 --- о --- о --- B

изоферменты печени 1 и 2 являются базами слияния A и B. Ни один из них не лучше другого (оба являются
лучший слить базы). Если параметр --all не указан, не указано, какой из них лучше
вывод.

Распространенной идиомой для проверки "быстрой перемотки вперед" между двумя коммитами A и B является (или, по крайней мере,
раньше было), чтобы вычислить базу слияния между A и B, и проверить, совпадает ли она с A,
в этом случае A является предком B. Вы увидите, что эта идиома часто используется в старых сценариях.

A = $ (git rev-parse - проверить A)
if test "$ A" = "$ (git merge-base AB)"
тогда
... A является предком B ...
fi

В современном git вы можете сказать это более прямо:

если git merge-base --is-ancestor AB
тогда
... A является предком B ...
fi

.

ОБСУЖДЕНИЕ ON ВИЛКА-ТОЧКА РЕЖИМ


После работы над веткой темы, созданной с помощью git checkout -b topic origin / master,
история происхождения / хозяина ветки удаленного отслеживания могла быть перемотана и перестроена, что привело к
к истории этой формы:

о --- B1
/
--- o --- o --- B2 - o --- o --- o --- B (источник / главный)
\
B3
\
Производный (тема)

где origin / master раньше указывал на коммиты B3, B2, B1, а теперь указывает на B, а ваш
ветка темы была запущена поверх нее еще тогда, когда origin / master находился в B3. Этот режим использует
рефлог origin / master, чтобы найти B3 в качестве точки разветвления, чтобы тема могла быть перебазирована
поверх обновленного источника / мастера:

$ fork_point = $ (git merge-base --fork-point origin / главная тема)
$ git rebase --onto origin / master тема $ fork_point

Используйте git-merge-base онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad