Непонятное сообщение об ошибке из git - PullRequest
84 голосов
/ 28 июня 2010

Я получил это сообщение от Git:

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

Кто-нибудь может это объяснить?а важнее как это исправить?

Ответы [ 3 ]

81 голосов
/ 28 июня 2010

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

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

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

79 голосов
/ 28 июня 2010

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

git branch -u origin/master master

(Аналогично для других филиалов и / или пультов.)

Если вы можете объединить это с толчком, это будет еще короче:

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 у вас было , чтобы сделать это таким образом.

3 голосов
/ 28 июня 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...