https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches
Я хотел бы подтвердить, что в конце раздела "Проталкивание" на странице выше,
(1) Выполнить git merge origin/serverfix после выборки
(2) Беги git checkout -b serverfix origin/serverfix
Правильно ли я понимаю, что операции (1) и (2) имеют одинаковый эффект?





Да, есть разница; нет, они не имеют такого же эффекта.
Как поясняется в связанном документе, git merge origin/serverfix объединит удаленную ветку «origin/serverfix» с той веткой, которая в данный момент извлечена (текущая рабочая ветка), а git checkout -b origin/serverfix создаст новую локальную ветку с именем «serverfix» на основе удаленного «origin/ serverfix", а затем проверьте новую ветку.
@森口万太郎: обратите внимание, что комментарии должны касаться только конкретных вещей, а комментарии «спасибо» не приветствуются. Вместо этого, если кто-то предоставит полезный ответ , вы можете проголосовать за него. Если один ответ решит вашу проблему, вы можете принять его. Пожалуйста, прочитайте справочный центр для получения дополнительной информации о том, как работает SO.
Спасибо за ваше руководство. В настоящее время я занимаюсь расследованием на основе полученных ответов. Я только начинаю изучать Git, поэтому решение этого вопроса может занять некоторое время.
git checkout -b создает другую ветку и переключает вас на нее. git checkout -b serverfix origin/serverfix указывает, что новая локальная ветка serverfix должна указывать на тот же коммит, что и serverfix удаленной origin ветки.
git merge объединяет изменения из указанной фиксации в вашу текущую ветку, обновляя вашу текущую ветку.
Они совершенно разные. После их выполнения вы окажетесь в разных ветках и, возможно, даже не будете иметь одинаковый HEAD контент.
Спасибо за ваш ответ. Я хотел бы подумать еще раз на основе контента, который я получил.
Порядок важен:
Сначала вы создаете ветку темы. Начиная с Git 2.23 (3 квартал 2019) , правильной командой будет git switch -c:
git switch -c serverfix
Поскольку git switch имеет (как и git checkout раньше) режим угадывания, это эквивалентно:
git switch -c <branch> --track <remote>/<branch>
Другая команда состоит в том, чтобы объединить работу ветки темы с вашей текущей веткой.
Если бы эта текущая ветка была вашей собственной версией serverfix, было бы достаточно простого git pull (сокращение от «git fetch + git merge origin/serverfix»)
Но если вы хотите напрямую объединить удаленную ветку с вашей текущей веткой:
git fetch
git switch main
git merge origin/serverfix
Спасибо за ваш ответ. Я хотел бы подумать еще раз на основе контента, который я получил.
Спасибо за ваш ответ. Я хотел бы подумать еще раз на основе контента, который я получил.