Почему Git не используется по умолчанию для "хозяина происхождения"?
Я много раз пробовал
git pull
и говорит, что ветвь не указана. Итак, ответ в Как вы получаете git, чтобы всегда извлекать из определенной ветки?, кажется, работает.
Но мне интересно, почему не git по умолчанию для master
ветки? Если ничего не указано, не имеет ли смысл иметь в виду ветвь master
? Является ли git попыткой соответствовать его названию - "a w23 > " = неприятный человек, так что, когда вы спрашиваете, в какое время оно, оно всегда говорит вам ", поскольку вы не сказали, хотите ли вы знать местное время или среднее время по Гринвичу, прервать".
Ответы
Ответ 1
git пытается использовать разумные значения по умолчанию для git pull
на основе ветки, в которой вы сейчас находитесь. Если вы получили ошибку, с которой вы ссылаетесь, от git pull
, пока вы находитесь на master
, это означает, что вы не настроили ветвь вверх по тегу master
. Во многих ситуациях это будет уже настроено - например, когда вы клонируете из репозитория, git clone
настроит удаленный origin
, чтобы указать на этот репозиторий, и настроить master
на origin/master
как вверх по течению, поэтому git pull
будет просто работать ™.
Однако, если вы хотите выполнить эту настройку вручную, вы можете сделать это с помощью
git branch --set-upstream master origin/master
... хотя с git 1.8.0 вы должны использовать --set-upstream-to
, так как прежнее использование не устарело из-за склонности к ошибкам. Итак, для git 1.8.0 и более поздних версий вы должны:
git branch --set-upstream-to origin/master
Или вы также можете настроить соответствующую конфигурацию при нажатии:
git push -u origin master
... и git pull
будут делать то, что вы хотите.
Ответ 2
Как упоминалось выше, git clone
устанавливает все значения по умолчанию соответствующим образом.
Я нашел нажатие с опцией -u
, чтобы быть проще всего настроить ситуацию с существующим репо.
git push -u origin master
Вы можете проверить, что было удаленно настроено с помощью
git remote -v
Подробнее см. git help remote
.
Ответ 3
Почему вы хотите по умолчанию отключить главный ветвь? Что делать, если у меня есть репозиторий без ветки с именем master? В конце концов, это просто ветка с именем "master".
Мой ответ на ваш вопрос заключается в том, что git не хочет мешать вам и решать, каков должен быть рабочий процесс. Обычно это не проблема, поскольку у вас обычно есть настройка удаленного ветки, поэтому git знает, что делать, когда вы используете "git pull" без аргументов.