Git: говорит, что origin уже существует в NEW (init) репозитории, с использованием оболочки, но установленным Github для Windows

Я установил Git для Windows, хотя использую оболочку, а не интерфейс Windows.

Если я сделаю git init, а затем попробую сделать

 git remote add origin [email protected]:someuser/testme.git

Я получаю следующую ошибку

 fatal: remote origin already exists.

So I do a

 git remote -v

и он возвращает следующее

origin
upstream

Таким образом, он появляется там, но не имеет установленного URL-адреса, я не понимаю, почему он там?

If I do a

 git remote rm origin

он производит это

 error: Could not remove config section 'remote.origin'

Он говорит, что не может удалить раздел конфигурации remote.origin; Я проверил файл .gitconfig в своем домашнем каталоге и ничего не вижу.

В любом случае я смог исправить это, используя

 git remote set-url origin [email protected]:someuser/testme.git

Но я запутался, так как раньше использовал Git, а этого никогда не было.

Может быть, это как-то связано с Git для Windows?


person Martin    schedule 09.06.2013    source источник
comment
вы, скорее всего, находитесь в папке, которая уже была репозиторием git. git init сообщит вам, если он повторно инициализировал репо, и в этом случае ничего не изменится. В такой ситуации, естественно, могут быть пульты, которые уже существуют в репо.   -  person Nevik Rehnel    schedule 09.06.2013
comment
Я не был полностью чистым каталогом .... Я даже перешел в другой каталог, который не имел к этому никакого отношения, и создал новый init и снова такой же   -  person Martin    schedule 09.06.2013
comment
тогда у вас есть проблема со всей вашей средой (это может быть несколько разных вещей, поэтому трудно сказать, не имея доступа). Попробуйте перезагрузить компьютер и посмотрите, сохраняется ли такое поведение. это может быть вызвано установкой некоторых переменных среды оболочки.   -  person Nevik Rehnel    schedule 09.06.2013
comment
Нет, я попытался перезагрузиться, и возникла та же проблема.   -  person Martin    schedule 10.06.2013
comment
Убедитесь, что нет скрытых файлов, о которых вы не знаете. Git хранит настройки конфигурации в .git, и если вы находитесь в подпапке папки, которая является репозиторием git, это может вызвать ваши проблемы.   -  person RyPeck    schedule 11.06.2013


Ответы (3)


Я разработчик, который это вставил. Вот почему я добавил это в систему gitconfig, это очень полезно!

## Because of this change, git fetch knows about PRs
git fetch

## Now, I can merge PRs by number
git merge origin/pr/24

## See changes from PR #53
git diff master...origin/pr/53

## Get the commit log from PR #25
git log origin/pr/25

К сожалению, это приводит к тому, что удаленный источник всегда существует, даже если его нет.

Обходной путь

Когда вы видите git remote add origin https://..., вместо этого:

git remote set-url origin https://...
person Ana Betts    schedule 10.10.2013
comment
PR-осведомлен !? Это восхитительно. Спасибо! :) - person James M. Greene; 11.10.2013
comment
@Paul Означает ли это ручную настройку, описанную в Локальная проверка запросов на извлечение в GitHub Справка больше не нужна с этой новой функцией? (Я попробовал git checkout pr/999, ничего не делая со своим .git/config, и это сработало.) - person Daniel Liuzzi; 28.10.2013
comment
Прочитав ответ Чада и его комментарии, я пошел проверить свой ~\AppData\Local\GitHub\PortableGit_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\etc\gitconfig и, конечно же, там была строка fetch = +refs/pull/*/head:refs/remotes/origin/pr/*. Итак, отвечу на свой вопрос: да, новые версии GHfW имеют git checkout pr/999 функциональность, встроенную на системный уровень, поэтому больше нет необходимости выполнять какую-либо ручную настройку для локальной проверки запросов на вытягивание. - person Daniel Liuzzi; 29.10.2013
comment
Мне просто понравилась первая строчка :) - person DollarAkshay; 11.09.2014

Я столкнулся с той же проблемой, и я думаю, что наконец понял ее. GitHub для Windows устанавливает версию PortableGit в /Users/<username>/AppData/GitHub. В каталоге PortableGit под /etc находится файл gitconfig. Это конфигурация системы. Он определяет "origin" и "upstream", предположительно со значениями по умолчанию, которые имеют значение для GitHub.

Я не могу сказать наверняка, но я начал замечать эту проблему в нескольких последних обновлениях клиента GitHub для Windows. К сожалению, в примечаниях к выпуску нет никаких доказательств, а клиент Windows не является открытым исходным кодом, поэтому трудно сказать.

Я отправил сообщение на их адрес поддержки, так что я обновлю здесь, если что-нибудь получу.

Изменить: служба поддержки GitHub ответила, что это известная проблема, которая скоро будет исправлена.

person Chad    schedule 27.06.2013
comment
они это еще не решили? Я вижу, что клиент Windows по-прежнему имеет версию 1.0, но она у меня уже есть .... - person davidhq; 17.08.2013
comment
мой путь был C:\Users\[UserName]\AppData\Local\GitHub\PortableGit_[long string here]\etc - person arturomp; 20.08.2013
comment
По состоянию на 20 августа я не вижу, чтобы это исправление вошло в клиент Windows Github. Возможно, вы сможете последовать совету Янива и просто удалить раздел origin в глобальном gitignore. - person Chad; 20.08.2013
comment
Это был ключ, который мне был нужен. У меня была та же проблема, что и у OP, при использовании окна PowerShell, открытого из GitHub для Windows. Вместо этого я открыл другое обычное окно командной строки, и все заработало. Проблема была в интеграции с GitHub. (кстати - я нажимал на BitBucket) - person Rob Campbell; 24.04.2014

Я просто удалил раздел origin в %appdata%/Local/GitHub/PortableGit_.../etc/gitconfig, и все вернулось к норме - новые repos действуют соответствующим образом, когда я добавляю к ним удаленные origin, поскольку их нет, когда они создаются.

У этого удаления могут быть побочные эффекты, но пока я не столкнулся с какими-либо проблемами.

person Yaniv Kessler    schedule 06.07.2013
comment
Если вы это сделаете, многие кнопки «Открыть на рабочем столе» на github.com будут делать странные вещи. - person Ana Betts; 10.10.2013
comment
Я работаю только с командной строкой, поэтому думаю, поэтому никогда не сталкивался с этим. Я предполагаю, что мое решение можно классифицировать как временный обходной путь до тех пор, пока github не справится с этим. - person Yaniv Kessler; 22.11.2013
comment
Это решило эту проблему для меня, и пока у меня не было проблем с github и их кнопкой клонирования на рабочий стол. - person PerseP; 18.03.2014