Сбивание сообщения об ошибке из git

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

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

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

Ответ 1

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

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

Подробнее см. git help branch, git help pull и git help fetch.

Ответ 2

Чтобы исправить это, предположив, что вы находитесь на ветке 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

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

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

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

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