2012-06-30 2 views
53

У меня есть локальная ветвь с именем 'my_local_branch', которая отслеживает удаленную ветвь origin/my_remote_branch.Обновление локального филиала с изменениями с отслеживаемой удаленной ветки

Теперь удаленная ветка была обновлена, и я нахожусь на 'my_local_branch' и хочу переместить эти изменения. Должен ли я просто делать:

git pull origin my_remote_branch:my_local_branch 

Правильно ли это?

ответ

44

Вы установили вверх по течению этой ветви

(см:

 
git branch -f --track my_local_branch origin/my_remote_branch 
# OR (if my_local_branch is currently checked out): 
$ git branch --set-upstream-to my_local_branch origin/my_remote_branch 

(git branch -f --track вон работайте, если b ранчо Выдана: использовать вторую команду git branch --set-upstream вместо этого, или вы получите «fatal: Cannot force update the current branch.»)

Это означает, что ваш филиал является already configured с:

branch.my_local_branch.remote origin 
branch.my_local_branch.merge my_remote_branch 

Git уже имеет всю необходимую информацию.
В этом случае:

# if you weren't already on my_local_branch branch: 
git checkout my_local_branch 
# then: 
git pull 

достаточно.


Если вы не установить, что вверх по течению отношения ветви, когда он пришел, чтобы подтолкнуть ваш «my_local_branch», то простой git push -u origin my_local_branch:my_remote_branch был бы достаточно, чтобы подтолкнуть и установить вверх по течению ветвь.
После этого для последующих тяг/толкателей, git pull или git push было бы, опять же, достаточно.

+0

В ОП упоминается, что они уже отслеживают удаленную ветку. – Amber

+3

@Amber, следовательно, мой ответ: 'git pull' достаточно. – VonC

+0

Первая команда 'git branch -f --track master origin/master' возвращает ошибку:' fatal: не может принудительно обновить текущую ветвь. –

39

Вы не используете синтаксис : - pull всегда изменяет текущую ветвь. Таким образом:

git pull origin my_remote_branch 

пока есть my_local_branch Выдана будет делать то, что вы хотите.

Поскольку у вас уже есть набор отслеживания филиалов, вам даже не нужно указывать - вы можете просто сделать ...

git pull 

пока есть my_local_branch проверили, и она будет обновляться из отслеживаются филиал.

+0

Это простое решение сработало для меня. – pratyush

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