2016-10-04 3 views
0

У меня есть ветвь мастера с дочерней ветвью (branchA). Я создал другую ветвь (branchB) из ветки A.Git merge with sub branches

Если я хочу получить последние изменения от branchA в branchB, это так же просто, как сидеть в branchB и делать?

git merge branchA 

или мне нужно сделать:

git pull origin branchA 

Какая разница здесь? Не тянет ли подразумеваемое слияние?

git merge branchName 

делать неявное натягивание на ветку? Путаюсь ...

ответ

0

это так просто, как сидя в branchB и делает:

git merge branchA 

Да, мерзавец имеет власть в своей простоте.

или мне нужно сделать:

git pull origin branchA 

Какая разница здесь?

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

Не тянет ли подразумеваемое слияние?

Да, это сокращение для git fetch и затем git merge

ли

git merge branchName 

сделать неявное тянуть на branchName?

Nope. Слияние использует только локальную ветвь.Поэтому, чтобы не путать вас дальше, но у ваших пультов есть локальные «ветви отслеживания», которые вы можете объединить, например:

git merge remote/branchName 
0

Предполагая, что две ветви уже не на вашей машине, вам действительно нужно, чтобы получить их первый:

git fetch -a 
git checkout branchA 
git pull 
git checkout branchB 
git pull 

После того, как вы их на вашей машине, вы можете легко объединить branchA в branchB используя:

git checkout branchB 
git merge branchA 

Теперь ветка Б будет содержать изменение как от ветви А, так и от ветви Б.

+0

У меня уже есть локальные копии обеих ветвей. Если, скажем, branchA устарел локально (многие разработчики работают на нем), и я сижу в branchB и делаю git merge branchA, я получу последние изменения в branchA или он объединит мою локальную копию branchA в branchB? –

+0

Вы не будете автоматически получать последние удаленные изменения при слиянии, вам нужно сначала внести изменения. В основном вы можете пропустить 'git fetch -a' в моем примере выше, но остальное необходимо. –