Объединить локальную ветку master с удаленной ветки master в Git
Я в странной ситуации: я скопировал каталог (локальный репозиторий) от бывшего разработчика на моей машине. Было несколько коммитов к удаленному мастеру, которые не находятся в его локальном репозитории.
как объединить локальную копию master с самыми последними изменениями удаленного master?
1 ответов
Случай 1: remote / master имеет все, что имеет локальный мастер
если remote/master содержит все коммиты, которые локальный master содержит, просто сделать git pull:
git checkout master
git pull remote master
вы можете проверить, если местный master имеет фиксирует, что remote/master не использует следующее:
git fetch remote
git log --oneline --graph remote/master..master
, которая покажет вам все коммиты, которые содержатся в master а не remote/master. Если вы не видите никакого вывода, это означает remote/master имеет все, что местное master есть.
случай 2: локальный мастер фиксирует, что удаленный / мастер не имеет
если локальный master содержит коммиты, которые remote/master не содержит, вам придется выяснить, как вы хотите справиться с этим. Вы хотите сохранить их и объединить с remote/master, или вы просто хотите их выбросить?
случай 2a: слияние / перебазирование локальных мастер-коммитов в remote / master
если вы хотите сохранить их, вы можете либо merge или rebase местный master С remote/master:
git checkout master
git fetch <remote>
# Merge remote/master
git merge remote/master
# Or rebase local commits on top instead
git rebase remote/master
# Push the results
git push remote master
случай 2b: выбросить локальные мастер-коммиты
если вы не хотите сохранять локальные коммиты, просто выполните жесткий сброс локального master в той же точке, что и remote/master:
git checkout master
git fetch remote
git reset --hard remote/master
документация
вы можете узнать больше обо всех этих командах из документация Git. Я также настоятельно рекомендую отличный бесплатный онлайн Pro Git book, особенно в главах 1-3 и 6-6.5.