2016-01-26 2 views
0

У меня есть вопрос, связанный с командой git pull --rebase: Почему не рекомендуется использовать git pull --rebase на удаленных филиалах? Я знаю, что команда rebase перезаписывает историю. Но почему (и как и в каких ситуациях) эта команда может быть злой?git pull --rebase на удаленной ветке

+0

Попробуй себя в [Duo-сценарий] (https://github.com/choroba/duo-screenplay) – choroba

ответ

2

Я не знаю, откуда эта идея, используя git pull --rebase на удаленных филиалов особенно злой.

Это не имеет большого смысла для начала: git pullпо дизайну имеет дело с удаленными репозиториями и как такие удаленные филиалы. Невозможно использовать его с не удаленными ветвями.

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

Как всегда: никогда не переставляйте опубликованные коммиты, и все в порядке. Независимо от того, как вы выполните перебазироваться (ли с помощью git pull --rebase или явного git rebase)

+0

Может быть, я не ясно: Мы работая с функциями или удаленными ветвями, основанными на истории. И на данный момент не понимаю смысла: «Никогда не переставляйте опубликованные коммиты». Как можно переустановить опубликованные коммиты? Я делаю некоторую работу, фиксирую некоторый код и делаю «git pull --rebase». Мои собственные коммиты не публикуются. Поэтому я не могу переустанавливать опубликованные (push) коммиты. – smsnheck

+0

Не имеет значения, каков ваш рабочий процесс. Если вы перекомпилируете опубликованные коммиты, вы создаете новые несовместимые объекты фиксации, поэтому вы нарушаете всех, у кого есть оригинальные коммиты. Публикация означает, что вы толкали их в какой-то момент раньше. Если вы их не нажимали, т. Е. У кого-то их нет, тогда нет проблем с их перезагрузкой. – poke

+0

Хорошо, теперь я думаю, что понял. Ребаза влияет на «дельта» -команды. Если эти коммиты (скажем: E, F, G ...) толкаются до и теперь переустанавливаются на E ', F', G ', тогда может возникнуть проблема. Но если я переустанавливаю свое местное репо и коммиты, которые не находятся в удаленной ветке, все должно быть в порядке ?! – smsnheck