Болтающаяся ветка?
Возможно, это уже заданный вопрос, но я просто не знаю, как правильно назвать проблему - поэтому, пожалуйста, направьте меня или ответьте (Да, я видел Этот вопрос, но не смог получить слишком много от ответа).
Я пытаюсь git pull
, но получаю следующее сообщение:
You asked me to pull without telling me which branch you
want to merge with, and 'branch.2012_05_09_my_branch.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.
If you often merge with the same branch, you may want to
use something like the following in your configuration file:
[branch "2012_05_09_my_branch"]
remote = <nickname>
merge = <remote-ref>
[remote "<nickname>"]
url = <url>
fetch = <refspec>
See git-config(1) for details.
Вероятно, похоже, что мой рабочий каталог как бы "висит", не будучи прикрепленным ни к одной ветке, я прав? Если да-пожалуйста, посоветуйте, как подключить его обратно к сети. правильная ветвь (например, 2012_05_09_my_branch
). Возможно, я даже ошибаюсь в этом (будучи полным новичком GIT), в этом случае, пожалуйста, объясните, что происходит и что я могу с этим сделать.
Уточненный вопрос: что мне нужно сделать, чтобы запустить git push
и git pull
успешно, не получая сообщение выше?
Обновление: когда я запускаю git branch
, я получаю:
* 2012_05_09_my_branch
master
Что своего рода , вероятно, означает, что я нахожусь на своей локальной ветви 2012_05_09_my_branch
, которая не связана ни с одной из удаленных ветвей. ветви?
Обновление N2: Почему я должен все время делать "-set-upstream"? - очень стоит прочитать в качестве дополнительного материала (нашел только сейчас).
3 ответа:
Это Не, что ваш рабочий dir не подключен к ветви, но у вас нет настройки, что такое одноранговая ветвь на удаленном компьютере для вашей локальной ветви. Вы можете "соединить" их вместе с помощью:
git branch --set-upstream 2012_05_09_my_branch remotes/<your remote>/2012_05_09_my_branch
Где - это сервер, определенный в .git / config, обычно (при работе с одним сервером) это
origin
править: более безопасный способ-использовать
remotes/<remote>/<branch>
вместо<remote>/<branch>
git status
Поможет вам узнать, на какой ветке вы находитесь (если таковые имеются). Команда
git branch
Даст список о локальных филиалах, которые у вас есть (git branch-a также перечисляет удаленные). И, конечно, вы можете использовать
git checkout <branchname>
Чтобы превратить вашу рабочую копию в выбранную ветвь.