2015-03-25 3 views
4

Если я объединить ветвь А в ветвь В, а затем удалить А, какая ветвь совершает фиксацию из ветви А (теперь удалена) принадлежит?Какая ветвь совершает фиксацию из удаленной ветки?

+0

Это помогает помнить, что «ветвь» в git - это просто указатель на фиксацию. Все коммиты «на ветке» - это те, которые достижимы из этой фиксации. –

ответ

10

Ветки Git - это простые указатели на фиксации. Запрашиваемая информация

К какой ветке относится эта фиксация?

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

Рассмотрим следующий пример:

enter image description here

Commit F в настоящее время только достижим из bugfix ветви; на данный момент имеет смысл сказать, что фиксация F «принадлежит» к ветке bugfix. Однако, если вы затем объединить bugfix в master, запустив

git checkout master 
git merge bugfix 

затем совершить F становится доступен из обоих этих ветвей:

enter image description here

Commit F не может быть больше не сказал принадлежать bugfix более чем master. Если вы удалите bugfix, то совершить F снова можно будет добраться только из одной ветки, master на этот раз, и в этом случае имеет смысл сказать, что фиксация F «принадлежит» master.


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

из которых ветви (если таковой имеется) это обязательство достижимым?

Смежные вопросы