Если вы не возражаете против создания ветки с именем temp
, вы можете просто сделать следующее для master
:
git commit -a -m 'more work done'
git fetch origin
git rebase origin/master
... или эквивалентно:
git commit -a -m 'more work done'
git pull --rebase origin master
Если вы хотите сохранить ветвь temp
, вы все равно можете сделать это немного короче, не проверяя master
просто для выполнения pull
- вам нужно только fetch
и затем выполнить ребазинг Ваш филиал на origin/master
:
# work work work...
$ git checkout -b temp
$ git commit -a -m 'more work done'
$ git fetch origin
# It looks like origin/master was updated, so:
$ git rebase origin/master
# Then when you finally want to merge:
$ git checkout master
$ git merge temp
$ git push origin master
$ git branch -d temp
Ответ Сехе напоминает мне, что вы можете заменить:
$ git fetch origin
$ git rebase origin/master
... с:
$ git pull --rebase origin master
... что эквивалентно * . Разница в том, что когда вы запускаете git fetch origin
, все ваши ветви удаленного отслеживания для origin
будут обновляться, тогда как когда вы извлекаете конкретную ветку из origin
, ни одна из них не является - это просто временный ref FETCH_HEAD
что обновлено. Я лично предпочитаю запускать одну дополнительную команду (git fetch origin
) и видеть все удаленные ветви, которые изменились в выводе.