Как я могу поддерживать ветку в актуальном состоянии с помощью мастера с помощью git?


126

У меня есть исправление ошибки в моем мастере, и я также хочу, чтобы моя ветка исправила эту ошибку. Какую gitкоманду использовать?

Ответы:


172

Предполагая, что вы в порядке с внесением всех изменений в мастер, вам нужно:

git checkout <my branch>

переключить рабочее дерево на свою ветку; затем:

git merge master

объединить все изменения в мастере с вашими.


5
И это просто добавляет изменения из моего мастера в мою ветку и оставляет мастера в покое, верно?
Ник Хаббард

3
@Nic - это принесет все коммиты от мастера, а не только исправление ошибки. Будьте уверены, хотите ли вы этого.
manojlds

12
@Nic - Верно, это не изменяет master.
Джон Доти

16
Было бы неплохо порекомендовать начальный "git checkout master; git pull", чтобы убедиться, что локальная главная ветка актуальна. Обычно очевидно, но ...
MikeW

В качестве ярлыка для основной проверки / слияния, можете ли вы просто выполнить «git pull origin master», чтобы вытащить мастер / слияние сервера в локальную проверенную ветку?
user1172173

66

Если ваша ветка является только локальной и не была отправлена ​​на сервер, используйте

git rebase master

В противном случае используйте

git merge master

18
Потому что он изменяет историю фиксации, и вы не хотите отправлять измененную историю поиска на сервер.
Chetan

1
Если вы используете репозиторий svn в качестве удаленного репозитория - через - тогда git svnлучше всего git rebase masterбудет вести линейную историю, что понимает svn.
alondono

15

Вы можете использовать вишневый выбор, чтобы получить конкретную фиксацию исправления ошибки.

$ git checkout branch
$ git cherry-pick bugfix

будет ли выбор вишни работать только в том случае, если исправление ошибок было веткой, которая была снова объединена с мастером?
Прасит Говин

1
Вы можете выбрать вишню, но затем после слияния ветки с мастером (когда ветка будет готова) у вас будет фиксация с исправлением ошибок дважды в истории.
Готье

0

Если вы просто хотите, чтобы исправление ошибки было интегрировано в ветку, git cherry-pickсоответствующий коммит (и).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.