Поиск…


Синтаксис

  • git merge another_branch [опции]
  • git merge --bort

параметры

параметр подробности
-m Сообщение, которое должно быть включено в фиксацию слияния
-v Показать подробный вывод
--abort Попытайтесь вернуть все файлы обратно в их состояние
--ff-only Прерывается мгновенно, когда требуется слияние.
--no-ff Принуждает к созданию слияния, даже если это не является обязательным
--no-commit Притворяется, что слияние не позволило проверить и настроить результат
--stat Показывать diffstat после завершения слияния
-n / --no-stat Не показывать diffstat
--squash Позволяет выполнить одно фиксацию в текущей ветке с объединенными изменениями

Объединить одну ветку в другую

git merge incomingBranch

Это объединяет ветвь incomingBranch в ветку, в которой вы сейчас находитесь. Например, если вы в настоящий момент находитесь в master , то incomingBranch будет объединен в master .

Слияние может создавать конфликты в некоторых случаях. Если это произойдет, вы увидите сообщение « Automatic merge failed; fix conflicts and then commit the result. Вам нужно будет вручную отредактировать конфликтующие файлы или отменить попытку слияния, запустите:

git merge --abort

Автоматическое слияние

Когда коммиты на двух ветвях не конфликтуют, Git может автоматически объединить их:

~/Stack Overflow(branch:master) » git merge another_branch
Auto-merging file_a
Merge made by the 'recursive' strategy.
 file_a | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Прерывание слияния

После запуска слияния вы можете остановить слияние и вернуть все в свое состояние предварительного слияния. Использовать --abort :

git merge --abort

Сохранять изменения только с одной стороны слияния

Во время слияния вы можете передать --ours или - --theirs git checkout чтобы принять все изменения для файла с одной стороны или другого слияния.

$ git checkout --ours   -- file1.txt # Use our version of file1, delete all their changes
$ git checkout --theirs -- file2.txt # Use their version of file2, delete all our changes

Объединить с фиксацией

Поведение по умолчанию - это когда слияние разрешается как перемотка вперед, только обновляет указатель ветвления, не создавая фиксацию слияния. Используйте --no-ff для разрешения.

git merge <branch_name> --no-ff -m "<commit message>"

Поиск всех ветвей без слияния изменений

Иногда у вас могут быть ветви, лежащие вокруг, которые уже сменили их изменения на мастера. Это находит все ветви, которые не являются master , которые не имеют уникальных коммитов по сравнению с master . Это очень полезно для поиска ветвей, которые не были удалены после того, как PR был объединен с мастером.

 for branch in $(git branch -r) ; do
   [ "${branch}" != "origin/master" ] && [ $(git diff master...${branch} | wc -l) -eq 0 ] && echo -e `git show --pretty=format:"%ci %cr" $branch | head -n 1`\\t$branch
 done | sort -r


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow