Не удается удалить удаленное происхождение

Я запускаю git 1.8.0 на OS X, и каждый новый репозиторий git, кажется, имеет удаленный вызов "origin":

$ git init
$ git remote
origin

Что странно, что я не могу его удалить:

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

И поэтому я не могу добавить новый удаленный вызов origin. Почему это? Что я могу сделать, чтобы изменить его?

Ответ 1

Вы можете удалить origin с помощью

git remote rm origin

Не то, что вам нужно, вы можете просто изменить origin на set-url

git remote set-url origin "https://..." 

Ответ 2

Откройте каталог .git и отредактируйте файл конфигурации, где он говорит [remote "origin" ]

Ответ 3

ПРЕДУПРЕЖДЕНИЕ: внимательно прочитайте перед попыткой


Эта ошибка также может быть вызвана, если вы копируете и вставляете проект с инициализацией git. Я бы рекомендовал это только в новом проекте, где вам не нужна предыдущая история.

Фон

Я столкнулся с этой ошибкой, когда просто копировал и вставлял проект. Когда я побежал git status, я увидел разницу между новым проектом и тем, который я вложил.

Решение

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

rm -f -r .git

Который избавился от старого .git файла из предыдущего проекта. Затем я запустил git init для нового .git файла, тогда все было в порядке.

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

Ответ 4

Я решил свои проблемы таким образом. Сначала я открыл файл config, используя vim с помощью следующей команды

$ vim .git/config

Я изменил свой файл ниже:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = false
[branch "master"]
[remote "origin"]
        url = [email protected]:xxx.git
        fetch = +refs/heads/*:refs/remotes/origin_iOS/*

Итак, когда я даю команду git push, она понимает, потому что по умолчанию она помещается в origin, и она устанавливается на мой origin_iOS на моем сервере.

Вы можете проверить конфигурацию своего происхождения на команду remote -v:

$ git remote -v
origin  [email protected]:xxxx.git (fetch)
origin  [email protected]:xxx.git (push)

Если у вас нет 'origin', у вас будут проблемы с обычным 'git push', как я. Мне пришлось набрать 'git push origin_iOS master', потому что у меня в моей конфигурации 'origin_iOS'

Ответ 5

В корневом каталоге git есть .git/config и еще один конкретный .git/config в каждом репозитории, который вы сохранили локально.

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

$ cd GitRepositoryName

Обратите внимание, что "GitRepositoryName" - это любое ваше имя репозитория. Затем введите

$ git remote remove origin

который может работать!