Подтвердить что ты не робот

Почему Git не используется по умолчанию для "хозяина происхождения"?

Я много раз пробовал

git pull

и говорит, что ветвь не указана. Итак, ответ в Как вы получаете git, чтобы всегда извлекать из определенной ветки?, кажется, работает.

Но мне интересно, почему не git по умолчанию для master ветки? Если ничего не указано, не имеет ли смысл иметь в виду ветвь master? Является ли git попыткой соответствовать его названию - "a w23 > " = неприятный человек, так что, когда вы спрашиваете, в какое время оно, оно всегда говорит вам ", поскольку вы не сказали, хотите ли вы знать местное время или среднее время по Гринвичу, прервать".

4b9b3361

Ответ 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" без аргументов.