2016-01-23 3 views
0

У меня есть вопрос о Git.Использовать rebase или merge при удалении из удаленного хранилища?

Я клонировал дистанционное репо. Итак, у меня есть ведущая ветвь на моей локальной машине. Я хочу сделать некоторые изменения в некоторых файлах. Поэтому я создаю новый филиал на местном уровне и выполняю свою работу. Зафиксируйте изменения, а затем слейте новую ветку ветви и мастера. Теперь я готов внести изменения в дистанционное репо.

Теперь мне нужно сначала вытащить изменения из репо, а затем нажать мои изменения. Это правильно?

Если да, то что я должен использовать при потянув? Rebase или Merge?

+1

Это зависит от вас. Объедините, если вы хотите, чтобы ваша ветка была видимой в записанной истории, rebase, если вы просто хотите поместить свои изменения поверх последнего мастера (в линейной последовательности). – Thilo

+0

git rebase пытается сделать, ваш git repo совершает график более линейным. – null1941

ответ

2

Его полностью до вас. Но разница между ними - это модификация графа git commit.

Merge Пример: Допустим, у меня есть мастер и issue53 ветви enter image description here

мерзавец фиксации график после слияния, как: enter image description here

Rebase Пример: Допустим, у меня есть сервер филиала и мастер-ветвь, как это enter image description here

Гит дерева после выполнения перебазирования работы сервера на мастер loooks как enter image description here

0

Как предложено null1941, его вопрос предпочтительнее для команды. Но, как правило, вы пытаетесь переустановить код. Вы потеряете порядок коммитов, но сделаете свою гит-историю линейной.

Допустим, вы совершили коммит вчера, но теперь вы тянете код, который совершается с сегодняшнего дня. Ваша вчерашняя фиксация появится наверху. Но очень легко рассуждать об изменениях при просмотре истории гитов, когда она линейно. В отличие от случая в слиянии, который создает фиксацию слияния, если у вас есть локальные коммиты. Хранилища слияния становятся очень сложными, чтобы выяснить, какое совершение совершило то, что совершает коммиты.

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

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