2014-01-14 5 views
0

Я действительно смущен использованием git. Предположим, что в репо у меня есть ведущее подразделение master, используемое между несколькими пользователями, и я создал тестовую ветвь test. Время от времени я получал test, чтобы получать обновления от master, так что я всегда использую последнюю кодовую базу. Чтобы сделать это, у меня есть следующие варианты:Как обновить мою локальную ветку в Git

В ходе испытаний филиала

1. git pull origin master 

2. git rebase master 

3. git rebase origin/master 

Я не вижу никаких проблем с вариантом 1. Однако вариант 2 не будет работать всегда. Это местный мастер, он не будет обновлен, пока я не дойду до master филиала и не сделаю git pull. Как насчет варианта 3? git rebase внутренне звонит git fetch, чтобы убедиться, что источник/мастер обновлен? Иначе это тоже не очень хорошая идея?

+1

Думаю, вы ожидаете, что # 2 сделает «git pull --rebase» (что делает «git fetch», а затем переустанавливает изменения в вашу локальную копию). Я не лучший человек, чтобы дать вам пример этого. – Sam

ответ

1

Кажется, что вы хотите сделать, просто и разумно достигнуто # 1, как вы это заметили.

Одно использование для переустановки - это контроль внешнего вида истории изменений. Вы читали это описание здесь:

http://git-scm.com/book/en/Git-Branching-Rebasing

Вы не сказали ничего, что означает, что вы заботитесь об этом, в этом случае я не могу понять, почему вы бы беспокоиться. Если вы действительно хотите это сделать, вам нужно сделать git pull --rebase, как впервые заметил Сэм Салливан в комментарии.

1

Попробуйте этот рабочий процесс:

  1. GIT мастер тянуть происхождения
  2. Сделайте ваши изменения
  3. мастер мерзавец толчок происхождения

pull делает fetch и merge, так что будет обновлять вашей местной копии.

+0

Интересно, существует ли надежный способ использовать 'git rebase', так как многие люди предпочитают его« git pull ». – Richeek

+0

Существует дискуссия о том, что лучше, и это действительно зависит от нескольких факторов. Но лучшим сравнением является 'rebase' vs' merge' (а не 'pull'). – Vidya

1

git book имеет достойный tutorial on branching and merging. Взгляните и посмотрите, ясно ли это. В принципе, вы создаете новую ветку с использованием git checkout -b Richeek1, которая будет отделяться от текущего состояния мастера. После вытаскивания, для повторной синхронизации Richeek1 с мастером, git merge master выполнит трюк. Дайте мне знать, если у вас возникнут дополнительные проблемы.

+0

Я думаю, что 'git merge master' не будет работать, пока я не проведу мастер-ветку и не сделаю« git pull »там ... – Richeek

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