Я только начал использовать GIT и считаю его замечательным, однако я немного не понимаю, что merge
делает команда.
Допустим, у нас есть рабочий проект в ветке «А».
Я иду домой, вношу изменения в эту ветку и сохраняю ее как «B». Другой программист вносит изменения в «A» и сохраняет его как «C».
Есть ли способ объединить две ветви «B» и «C» вместе, а затем зафиксировать изменения как новую ветвь, скажем «D»?
Или не хватает точки «слияния»?
Ответы:
merge
используется для объединения двух (или более) веток.небольшой пример:
Итак, теперь есть три отдельных ветки (а именно AB и C) с разными головами
чтобы вернуть изменения из B и C в A, проверьте A (уже сделано в этом примере), а затем используйте команду слияния:
тогда ваша история будет выглядеть примерно так:
если вы хотите выполнить слияние через границы репозитория / компьютера, посмотрите на
git pull
команду, например, с компьютера с веткой A (в этом примере будут созданы две новые фиксации):источник
git add conflicting_files
а затемgit commit
Если вы хотите объединить изменения в SubBranch с MainBranch
git checkout MainBranch
git merge SubBranch
источник
Случай: если вам нужно игнорировать фиксацию слияния, созданную по умолчанию , выполните следующие действия.
Скажем, новая функциональная ветка извлечена из мастера, уже имеющего 2 фиксации,
Checkout a new feature_branch
Затем ветка Feature добавляет две фиксации ->
Теперь, если вы хотите объединить изменения feature_branch с мастером,
git merge feature_branch
сидите на мастере.Это добавит все коммиты в основную ветку (4 в master + 2 в feature_branch = всего 6) + дополнительный коммит слияния что-то вроде
'Merge branch 'feature_branch'
', поскольку мастер расходится .Если вам действительно нужно игнорировать эти коммиты (сделанные в FB) и добавить все изменения, сделанные в feature_branch, как один коммит, например
'Integrated feature branch changes into master'
, Rungit merge feature_merge --no-commit
.С --no-commit он выполняет слияние и останавливается непосредственно перед созданием коммита слияния. У нас будут все добавленные изменения в ветке функций теперь в master, и мы получим возможность создать новый коммит как свой собственный.
Подробнее читайте здесь: https://git-scm.com/docs/git-merge
источник