2016-03-10 4 views
1

Предполагая, что я нахожусь в главной ветке, и я хочу объединить ветку с именем «branch-A».отличие от: git merge branch vs git merge branch master

Есть какая-либо разница между вызовом или не главной ветвью ?. т.е. делать как этот

$ git merge branch-A 

или как это:

$ git merge branch-A master 

И если я инвертировать заказ ???

$ git merge master branch-A 

Если есть какие-либо, то это должно быть что-то простое, я думаю. Я не вижу различий, но, может быть, есть что-то, чего я просто не вижу. Благодаря

ответ

3

git merge branch-A объединит все изменения, сделанные в ветви-A к текущей ветви (мастер)

git merge branch-A master объединит все изменения, сделанные в ветви-A и мастер к вам текущей ветви. так как вы уже на хозяине, он должен только объединить ветвь-A

git merge master branch-A - это то же самое. объединить обе ветви в текущую ветку, но в другом порядке.

другими словами: git merge A B C D объединит ветви A, B, C и D в вашу текущую выданную ветку (например, мастер). порядок, в котором вы передаете ветви в качестве аргумента, - это порядок, в котором они объединены. это может быть полезно в случае обработки конфликтов. Целью слияния всегда является ветка, которую вы проверили раньше.

+0

О, это хороший совет. Обычно я делал множественные слияния в ветку интеграции. С этим наконечником я могу уменьшить это до одного лайнера! Благодарю. – Sukima

0

Если вы на master и вы хотите объединить branch-A в master наиболее прямолинейный способ сделать это:

# first make sure you are on master 
# (be on the branch you want to merge INTO) 
git checkout master 

# merge the other branch into master 
git merge branch-A 

От doc:

Объединяет изменения от именованные коммиты (с тех пор, как их историй расходились с текущей веткой) в текущий бюстгальтер nch.

1

Объединение более двух ветвей называется осьминога сливаются

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

Первый случай объединит ветку -A к текущей (основной) ветке.

Для второго и третьего случаев, когда для команды git merge предусмотрены две или более ветвей, они объединяются в текущую ветвь в том порядке, в котором они поставляются.

Для примера:

git merge branch-A branch-B 

Это слияние филиал-А в текущей ветви, а затем ветви-B

Этот ответ объясняет больше о Octopus слияния Git octopus merge order of multiple branches

Вы также найдете эта документация полезна: https://git-scm.com/docs/git-merge