Путание сообщения об ошибке от мерзавца

Я получил это сообщение от Мерзавца:

Вы попросили вытягивать от удаленного 'источника', но не указывали ответвление. Поскольку это не значение по умолчанию, настроенное удаленный для Вашего текущего ответвления, необходимо указать ответвление по командной строке.

Кто-либо может объяснить это? и более важный, как зафиксировать его?

87
задан Michael Mrozek 28 June 2010 в 14:54
поделиться

3 ответа

Вы должны указать git, какую ветку вы хотите извлечь из "исходных" удаленных репозиториев.

Думаю, вам нужна ветка по умолчанию (мастер), поэтому git pull origin master должен исправить вашу проблему.

См. git help branch , git help pull и git help fetch для получения дополнительной информации.

84
ответ дан 24 November 2019 в 07:47
поделиться

В сообщении точно сказано, о чем оно. Ваша текущая ветка не связана (не отслеживает) ни с одной веткой в ​​ origin . Итак, git не знает, что тянуть.

Что делать? Это зависит от...

В большинстве случаев вы работаете с некоторой локальной веткой xyz , которая разветвляется от мастера , который клонирован от мастера origin . Обычный способ решить эту проблему - переключиться на мастер и потянуть, чтобы синхронизировать его с origin , а затем вернуться к xyz и rebase master ].

Но в вашей ситуации вы можете захотеть сделать что-нибудь еще. Мы не можем знать этого, не зная подробностей о ваших ветках и пультах, а также о том, как вы собираетесь их использовать.

3
ответ дан 24 November 2019 в 07:47
поделиться

Чтобы исправить это, предположим, что вы находитесь на ветке master и хотите получить ветку master из удаленной ветки origin, в достаточно новых версиях Git (1. 8 или новее):

git branch -u origin/master master

(Аналогично для других веток и/или удалённых узлов.)

Если вы можете совместить это с push, это ещё короче:

git push -u origin master

После этого обычные git pull/git push будут делать то, что вы ожидаете.


В серии Git 1.7 в git branch не было ключа -u (только git push), и вместо него нужно было использовать гораздо более длинный --set-upstream:

git branch --set-upstream master origin/master

Обратите внимание на изменение аргументов по сравнению с -u. Я не раз путался в этом порядке.


Все это, кстати, сокращение для выполнения следующих действий, которые вы все еще можете выполнить явно:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

До версии 1.7 вы должны были делать это следующим образом.

82
ответ дан 24 November 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: