git объединяет изменения в локальную ветку - PullRequest
10 голосов
/ 15 апреля 2010

Возможно ли объединить изменения из центрального репо в локальную ветку без необходимости фиксировать / хранить изменения в локальной ветке и в мастере проверки?

Если я работаю над «работой» локальной ветки и есть некоторые незафиксированные изменения, я использую следующие шаги для получения обновлений из центрального репо в мою рабочую ветку.

git stash
git checkout master
git pull 
git checkout work
git rebase master
git stash pop

Обычно нет никаких незавершенных изменений в «работе», и затем я пропускаю шаги тайника.

Что бы я действительно хотел, это что-то вроде следующего:

git pull master  (updates master while work branch is checked out and has changes)
git rebase master (rebases the updates into work branch uncommited changes are still safe)

Есть ли что-то более легкое, чем то, что я сейчас делаю?

Ответы [ 3 ]

12 голосов
/ 15 апреля 2010

Можно сделать (на ветке work):

git stash
git pull --rebase origin master
git stash apply

git pull --rebase оба извлекают удаленные изменения и отменяют локальные изменения поверх удаленных. То есть по существу делает то, что вы показываете в вашем сценарии.

Локальные изменения, конечно же, должны быть зафиксированы или сохранены на merge или rebase (потому что, если возникает конфликт слияния, конфликтующие изменения должны быть отменены, чтобы вы могли их разрешить - но куда же будут идти ваши локальные изменения? ) * +1010 *

Когда вы позже решите обновить master и объединить ветвь work с ним, это не вызовет проблем, так как внесенные изменения одинаковы. Таким образом, вам не нужно обновлять master при внесении изменений.

2 голосов
/ 15 апреля 2010

Я не думаю, что вы можете тянуть, если у вас есть незафиксированные изменения.

Следовательно, вы можете сделать что-то вроде:

git stash
git pull --rebase <remote> <branch> # Calls rebase instead of merge.
git stash pop
0 голосов
/ 30 декабря 2016

Возможно, с 2010 года все изменилось, но вы можете получить с пульта, даже если у вас есть незафиксированные изменения . Ваши локальные изменения останутся незафиксированными, поэтому вы можете их изменить или объединить на досуге.

git pull origin master

Протестировано с git версии 1.9.5.msysgit.1

С этого ТА ответа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...