Шаги, перечисленные будет работать, но есть более длинный путь, который дает вам больше возможностей:
git checkout dmgr2 # gets you "on branch dmgr2"
git fetch origin # gets you up to date with origin
git merge origin/master
Команда fetch
может быть сделано в любой момент до merge
, то есть, вы можете поменять порядок выборка и проверка, потому что fetch
просто переходит к именованному пульту (origin
) и говорит ему: «Дайте все, что у вас есть, что я не делаю», то есть все фиксируются на всех ветвях. Они копируются в ваш репозиторий, но с именем origin/branch
для любой ветки с именем branch
на пульте дистанционного управления.
На этом этапе вы можете использовать любое средство просмотра (git log
, gitk
и т. Д.), Чтобы увидеть, «что у них есть», что вы не делаете, и наоборот. Иногда это полезно только для Warm Fuzzy Feelings («ах, да, это на самом деле то, что я хочу»), и иногда это полезно для полного изменения стратегий («whoa, я не хочу, чтобы все это было»).
Наконец, команда merge
принимает данное обязательство, что вы можете назвать, как origin/master
, и делает все возможное, чтобы принести в этот коммит и его предков, какой бы отрасли вы находитесь, когда вы запускаете merge
. Вы можете вставить --no-ff
или --ff-only
, чтобы предотвратить ускоренную перемотку вперед или слить, только если результат является быстрым, если хотите.
При использовании последовательности:
git checkout dmgr2
git pull origin master
команда pull
инструктирует мерзавец запустить git fetch
, а затем моральным эквивалентом git merge origin/master
. Таким образом, это почти так же, как делать два шага вручную, но есть некоторые тонкие различия, которые, вероятно, не слишком относятся к вам. (В частности fetch
шаг в ведении pull
приносит более толькоorigin/master
, и он не обновляет реф в вашем репо: новых фиксаций ветры называют, только с помощью специального FETCH_HEAD
ссылки.)
Если вы используете более-явное git fetch origin
(то необязательно искать вокруг), а затем git merge origin/master
последовательность, вы также можете принести свой собственный местный master
до настоящего времени с пультом дистанционного управления, только один fetch
перспективы по сети:
git fetch origin
git checkout master
git merge --ff-only origin/master
git checkout dmgr2
git merge --no-ff origin/master
например.
Эта вторая часть была изменена, я говорю «фиксированный» -в мерзавец 1.8.4, который теперь обновляет «удаленный филиал» ссылки оппортунистически. (Как отмечалось в релизе, преднамеренное дизайнерское решение пропустить обновление, но выясняется, что больше людей предпочитают, чтобы git обновил его.Если вам нужен старый удаленный филиал SHA-1, он по умолчанию будет сохранен и, следовательно, восстановлен из reflog. Это также позволяет использовать новую функцию git 1.9/2.0 для поиска восходящих реорганизаций.)
сначала зафиксируйте все свои изменения в ветке dmgr2. а затем укажите мастер 1.git контрольный мастер и затем получите последнее изменение 2.git pull 3.git merge dmgr2 4.git push -u origin master И затем вернитесь к вашему dmgr2 5.git checkout dmgr2 –
Я уже внес все свои изменения в ветку dmgr2, извините забыл добавить, что –
, если я выполню шаг 4, не измените мои изменения в разработке? Я не хочу этого делать –