Что делает Git --set-upstream
?
Я попытался понять это, прочитав руководство по git , но не совсем понял .
Что делает Git --set-upstream
?
Я попытался понять это, прочитав руководство по git , но не совсем понял .
Ответы:
git branch --set-upstream <remote-branch>
устанавливает удаленную ветку по умолчанию для текущей локальной ветки.
Любая будущая git pull
команда (с извлеченной текущей локальной веткой)
будет пытаться ввести коммиты из <remote-branch>
текущей локальной ветки.
Один из способов избежать необходимости явного ввода --set-upstream
- использовать его сокращенный флаг -u
следующим образом:
git push -u origin local-branch
Это устанавливает восходящую связь для любых будущих попыток push / pull автоматически.
Для получения более подробной информации, ознакомьтесь с этим подробным объяснением о ветвях и отслеживании .
Во избежание путаницы в последних версиях
git
этот--set-upstream
вариант несколько неоднозначен, вместо более подробного--set-upstream-to
варианта с идентичным синтаксисом и поведением.git branch --set-upstream-to <origin/remote-branch>
git push -u origin local-branch
что origin
представляет? Есть ли какой-нибудь случай, когда я напечатал бы что-нибудь кроме origin
после -u
?
origin
относится к удаленному хранилищу git, с которого клонировался. Может быть несколько удаленных репозиториев git . В таком случае origin
может быть заменено надлежащим названием желаемого пульта, на который вы хотите сослаться.
git remote -v
чтобы найти ваши пульты, по умолчанию origin
обычно
Когда вы нажимаете на удаленное устройство и используете --set-upstream
флаг, git устанавливает ветку, на которую вы нажимаете, как ветку удаленного отслеживания ветви, которую вы нажимаете .
Добавление удаленного отслеживания средства ветвления , что мерзавец то знает , что вы хотите делать , когда вы git fetch
, git pull
илиgit push
в будущем. Предполагается, что вы хотите синхронизировать локальную ветвь и удаленную ветвь, которую она отслеживает, и предпринимаете соответствующие действия для достижения этой цели.
Вы можете достичь того же с помощью git branch --set-upstream-to
или git checkout --track
. Для получения дополнительной информации смотрите страницы справки git по отслеживанию веток .
git branch --set-upstream <<origin/branch>>
официально больше не поддерживается и заменяется git branch --set-upstream-to <<origin/branch>>
--set-upstream-to
которая была введена из-за путаницы (IIRC) в настройках.