#git
#git
Вопрос:
Я работал на компьютере A, который создавал новые ветки на удаленном.
Я перешел на компьютер B, и мне нужно выяснить, как обновить мое локальное репозиторий, чтобы получить все новые ветки, а также изменения в ветках, которые у него уже были, которые могли содержать новые коммиты.
Это то, что я могу сделать с помощью командной строки git?
Ответ №1:
Вам придется выполнять действия для каждой ветви последовательно, поскольку автоматизация этого становится непрактичной из-за того, что это pull
может привести к конфликтам, которые необходимо будет разрешать вручную.
1) Обновите все ваши ветви удаленного отслеживания с помощью удаленного
git fetch
После этого шага вы уже можете видеть в выходных данных названия новых или обновленных ветвей.
2) Обновление локальных ветвей
(примечание: используйте здесь не название ветки удаленного отслеживания, а название самой ветки. т.е. master
не origin/master
)
git checkout <branchName>
Если это новая ветка для вашей локальной, вы можете остановиться на этом, теперь у вас есть обновленная копия. Но если у вас уже была локальная копия этой ветки, теперь вам придется сделать
git pull
который сливается origin/<branchName>
с <branchName>
.
Разрешите конфликты, если таковые имеются, но многие ветки могут привести к ускоренным слияниям, особенно те, которые вы недостаточно недавно модифицировали.
И, наконец, да, это может занять немного времени, если у вас много веток, но вам нужно обновлять только ветки, над которыми вы хотите работать сейчас, не нужно лихорадочно обновлять каждую локальную ветку после каждой fetch
.
Комментарии:
1. Я одобряю (и повышаю). Однако я добавлю предложение выполнить
git pull --rebase
на случай, если локальная ветка и ее удаленная разошлись, чтобы избежать фиксации слияния. Это привело бы к более чистой и удобной для чтения истории / журнала.2. @padawin Я, как правило, забываю упомянуть об этой возможности, поскольку я сам редко ею пользуюсь, но вы правы, это полезное дополнение.