Как работает git checkout после git fetch - PullRequest
0 голосов
/ 05 июня 2019

Я только что сделал

git fetch origin <remoteBranch>

И после этого я просто сделал

git checkout <remoteBranch>

Это создало локальную ветку с именем <remoteBranch>.

Как это работает?Обычно, когда я хочу создать локальную ветвь, я должен сделать

git checkout -b

Ответы [ 2 ]

2 голосов
/ 05 июня 2019

Инструкция для оформления заказа гласит:

git checkout <branch>

[...] Если <branch> не найден, но существует ветвь отслеживания ровно в одном удаленном (назовите его <remote>) с соответствующим именем, трактуйте как

  $ git checkout -b <branch> --track <remote>/<branch>

Если ветвь существует в нескольких удаленных устройствах, и один из них назван конфигурационной переменной checkout.defaultRemote, мы будем использовать ее для устранения неоднозначности, даже если <branch> не уникален для всех удаленных устройств. Установите его, например, checkout.defaultRemote = origin, чтобы всегда извлекать удаленные ветви оттуда, если <branch> неоднозначно, но существует на удаленном источнике. Смотрите также checkout.defaultRemote в git-config [1].

2 голосов
/ 05 июня 2019

Насколько мне известно, когда вы просите оформить заказ, если ветка не существует локально, git попытается найти одну (и только одну) удаленную ветку с этим именем. Если он существует и существует один (может быть несколько удаленных серверов в вашем репо с тем же именем филиала), то git угадает, что это нужная вам ветка, и поэтому он создает ее локально, используя удаленную ветвь в качестве восходящей.

...