2013-09-06 2 views
3

Уже проверили эти вопросы:Когда я должен/не должен использовать Git тянуть --rebase

When should I use git pull --rebase?

Git commits are duplicated in the same branch after doing a rebase

When will `git pull --rebase` get me in to trouble?

но то, что я не понимаю, что некоторые люди говорят, что вы всегда должны git pull --rebase, а также другие пошли, установив его как вариант по умолчанию, когда вытягивали, а другие говорили, что это создает проблему.

Я столкнулся дубликата совершает вопрос в журнале мерзавца и я предполагаю, что это из-за --rebasing в то время, когда мы должны только pull, я знаю, что разница между git pull и git pull --rebase что мерзавец тянуть пытается объединить обе локальный и удаленный, в то время как git pull --rebase реплицирует коммиты.

Сценарии:

  1. , когда я начинаю свою работу и, прежде чем делать что-то новое, мне нужно тянуть других разработчиков изменений, я должен использовать git pull --rebase или только git pull? и почему?
  2. когда я работаю и совершаю и решаю нажать, но потом git просит меня потянуть сначала, должен ли я использовать git pull --rebase or git pull? и почему?
  3. Когда я работаю и фиксирую, работаю и совершаю (цикл), а затем в середине моей работы мне нужны чьи-то изменения, прежде чем я продолжу свою задачу, должен ли я git pull или git pull --rebase? и почему ?

Благодаря

+0

Кажется, что вы не знаете разницы между слиянием и переустановкой. Если вы прочитали [соответствующие части книги git] (http://git-scm.com/book/en/Git-Branching-Rebasing), на все ваши вопросы следует ответить. –

ответ

2

git pull делает две вещи - git fetch с последующим git merge. Если вы используете git pull --rebase, вместо этого он принимает git fetch, а затем git rebase. Чтобы ответить на ваши конкретные вопросы:

  1. Если вы не внесли никаких изменений на местном уровне, это не имеет значения. Результат будет таким же. Неявный git merge будет быстрой перемоткой вперед.

  2. Обычно в этом случае вы хотите переупаковать; вы предпочли бы, чтобы ваши изменения были линейными историями в верхней части того, что происходит с пультом дистанционного управления.

  3. Как правило, вы тоже переустанавливаете здесь. Опять же, вы хотите, чтобы ваша локальная работа была добавлена ​​поверх истории удаленного, не добавляя к ней слияние.

Все это безобразие можно избежать, просто не работает на удаленном трекинга филиала.

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