Удаленный источник уже существует в git push для нового репозитория


548

У меня есть проект на GitHub в каком-то месте git@github.com:myname/oldrep.git.

Теперь я хочу перенести весь мой код в новый репозиторий в другом месте git@github.com:newname/newrep.git.

Я использовал команду:

git remote add origin git@github.com:myname/oldrep.git

но я получаю это:

фатальный: удаленное происхождение уже существует.


6
Дайте вывод команды $> git remote -v show
sykora


Хороший способ - использовать «импорт из другого репозитория» внизу вашего нового созданного репозитория, если вы знаете URL старого.
JW.ZG

Подобный вопрос был задан здесь: stackoverflow.com/questions/2432764/…
jciloa

1
Если вы хотите сохранить исходный пульт, вы можете просто использовать другое имя git remote add origin2 ...., но если вам нужно всего лишь нажать один раз без изменения конфигурации репо, вы можете просто сделать это git push git@github.com:user/another-project.git master:master.
ccpizza

Ответы:


870

Вы получаете эту ошибку, потому что «происхождение» не доступно. «происхождение» - это соглашение, не являющееся частью команды. «origin» - это локальное имя удаленного хранилища.

Например, вы можете написать:

git remote add myorigin git@github.com:myname/oldrep.git  
git remote add testtest git@github.com:myname/oldrep.git

Смотрите руководство:

http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

Чтобы удалить удаленный репозиторий, вы вводите:

git remote rm origin

Снова «origin» - это имя удаленного репозитория, если вы хотите удалить «upstream» remote:

git remote rm upstream

8
«git remote rm origin» от меня не сработал, если он у вас не работает, попробуйте проверить с помощью «git remote -v», это покажет вам, есть ли у вашего источника установленный url, если это не так сделал init локально и пытаюсь его раздвинуть, и сделал ошибку как я). Затем следуйте ответу RobinH: git remote set-url origin git@github.com: имя пользователя / имя_проекта.git
Кларенс Лю

1
проверьте этот ответ , чтобы заставить URL.
srodriguex

"git remote rm origin" работал как шарм, замечательно! :) Пух, я новичок в терминологии git, так что это был больший поиск, но ваш ответ мне очень помог. :) благодарю вас!
Мартин Пфеффер

3
git push -u origin master --force
Ронни Ройстон

- сила это решение!
создатель

260

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

Проблема возникает из-за неправильного порядка конфигурации Git. Возможно, вы уже добавили «git origin» в вашу конфигурацию .git.

Вы можете изменить удаленный источник в вашей конфигурации Git следующей строкой:

git remote set-url origin git@github.com:username/projectname.git

Эта команда устанавливает новый URL-адрес для репозитория Git, к которому вы хотите перейти. Важно указать свое имя пользователя и имя проекта.


7
Спасибо, именно то, что я должен был сделать :)
winkbrace

Это пока для меня. Но что действительно помогло мне с этой проблемой, так это то, что я пользуюсь portableGit, который был установлен вместе с Gihub для Windows. Я нашел решение здесь
PerseP

Большой! Мне нужно было поменять свое реальное репо на git lab repo, и это решение было идеальным! Спасибо!
Марсело душ Сантуш

Та же ситуация, что и у OP, и мне нужно было сделать это, а затем и решение @ MrHus.
Шон Боб

4
Это лучший ответ ИМХО
Кратос

83

Если вы по ошибке назвали локальное имя «происхождение», вы можете удалить его следующим образом:

git remote rm origin

Что на самом деле означает «ошибочно названное местное имя как« происхождение »?». Можете ли вы объяснить это подробно? @Ozgur
Юань Вэнь

1
Это может означать, что вы добавили удаленный источник, который не указывает на репозиторий git. Поэтому, если вы планируете перенести все свои изменения в мастер, git будет жаловаться, говоря, что удаленный источник не является репозиторием git.
Гаутам Хоннавара

22

METHOD1->

Так как происхождение уже существует, удалите его.

git remote rm origin
git remote add origin https://github.com/USERNAME/REPOSITORY.git

METHOD2->

Можно также изменить существующий URL удаленного репозитория с помощью -> git remote set-url

Если вы обновляете для использования HTTPS

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

Если вы обновляете для использования SSH

git remote set-url origin git@github.com:USERNAME/REPOSITORY.git

Если вы попытаетесь обновить удаленный, который не существует, вы получите сообщение об ошибке. Так что будьте осторожны с этим.

METHOD3->

Используйте команду git remote rename, чтобы переименовать существующий пульт. Существующее удаленное имя, например, происхождение.

git remote rename origin startpoint
# Change remote name from 'origin' to 'startpoint'

Чтобы проверить новое имя пульта->

git remote -v

Если вы новичок в Git, попробуйте этот урок->

ПОПРОБУЙТЕ GIT TUTORIAL


1
Большое спасибо. Я был загружен, кто-то другой git, а затем хотел клонировать его в мой GitHub тоже. Наконец, я успешно использую ваш первый метод.
Наймур Хасан

17

Вы можете просто отредактировать свой файл конфигурации в текстовом редакторе.

В ~/.gitconfigнужно вставить что-то вроде следующего:

[user]
        name  = Uzumaki Naruto
        email = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

В oldrep/.git/configфайле (в файле конфигурации вашего репозитория):

[remote "github"]
        url = git@github.com:myname/oldrep.git
        push  = +refs/heads/*:refs/heads/*
        push  = +refs/tags/*:refs/tags/*

Если в файле конфигурации вашего репозитория есть удаленный раздел и URL-адрес совпадает, вам нужно только добавить push-конфигурацию. Если вы используете общедоступный URL-адрес для извлечения, вы можете указать в нем URL-адрес pushurl (предупреждение: для этого требуется только что выпущенная версия Git 1.6.4).


10
  1. git remote rm origin

  2. git remote -v Он не будет отображать имя хранилища

  3. git remote add origin git@github.com:username/myapp.git

  4. git push origin master Это запустит процесс и создаст новую ветку. Вы можете видеть, что ваша работа отправлена ​​на github.


8

Вам не нужно удалять существующий удаленный «origin», просто используйте имя, отличное от «origin», для своего удаленного добавления, например

git remote добавить github git@github.com: myname / oldrep.git



6

У меня возникла та же проблема, и вот как я ее исправил после некоторых исследований:

  1. Скачайте GitHub для Windows или используйте нечто подобное, в которое входит оболочка
  2. Откройте Git Shellменю задач. Это откроет Power Shell, включая команды Git.
  3. В оболочке переключитесь на свой старый репозиторий, например cd C:\path\to\old\repository
  4. Показать статус старого репозитория

    • Введите, git remote -vчтобы получить удаленный путь для извлечения и нажмите удаленный. Если ваш локальный репозиторий подключен к удаленному, он покажет что-то вроде этого:

      происхождение https: //user@bitbucket.org/team-or-user-name/myproject.git (выборка) происхождение https: //user@bitbucket.org/team-or-user-name/myproject.git (push)

    • Если он не подключен, он может показывать originтолько.

  5. Теперь удалите удаленный репозиторий из локального репозитория, используя

    git remote rm origin
    
  6. Проверьте снова с шагом 4. Он должен показывать originтолько вместо пути извлечения и отправки.

  7. Теперь, когда ваш старый удаленный репозиторий отключен, вы можете добавить новый удаленный репозиторий. Используйте следующее для подключения к вашему новому хранилищу.

Примечание. Если вы используете Bitbucket, вы сначала должны создать проект на Bitbucket. После создания Bitbucket отобразит все необходимые команды Git, чтобы переместить ваш репозиторий на удаленный компьютер, который похож на следующий фрагмент кода. Однако это работает и для других репозиториев.

cd /path/to/my/repo # If haven't done yet
git remote add mynewrepo https://user@bitbucket.org/team-or-user-name/myproject.git
git push -u mynewrepo master # To push changes for the first time

Вот и все.


5

У меня была такая же проблема, когда я впервые установил использование Bitbucket .

Моя проблема заключалась в том, что мне нужно было изменить происхождение слова на нечто самоопределяемое. Я использовал название приложения. Так:

git remote add AppName https://someone@bitbucket.org/somewhere/something.git

4

Вы должны изменить имя удаленного хранилища на другое.

git remote add origin git@github.com:myname/oldrep.git

в

git remote add neworigin git@github.com:myname/oldrep.git

Я думаю, что это должно работать.

Да, это для инициализации репозитория и добавления нового пульта. Просто со сменой имени.


3

Вы также можете изменить имя репозитория, к которому вы хотите подключиться, в файле REPOHOME / .git / config

(где REPOHOME - это путь к вашему локальному клону хранилища).



0

Вы должны проверить originи добавить, если не существует.

if ! git config remote.origin.url >/dev/null; then
    git remote add origin git@github.com:john/doe.git
fi

Создайте файл check.sh, вставьте скрипт, обновите URL вашего git-репозитория и запустите ./check.sh.


0

Шаг 1

git remote rm origin

Шаг 2

git remote add origin enter_your_repository_url

Пример:

git remote add origin https://github.com/my_username/repository_name.git

-1

Сначала напишите эту строку кода для удаленного пульта:

$ git remote rm origin

а затем напишите эту строку:

$ git remote add origin https://github.com/khadim321/React-Form.git

Это работает правильно.


пожалуйста, попробуйте дать больше объяснений, чтобы придать больше значения вашему ответу
Зейна

Я не уверен, поможет ли кто-нибудь добавить один из ваших репозиториев github в качестве удаленного источника. На этот вопрос уже отвечали пару раз. Проверьте другой вопрос, прежде чем создавать новый с таким низким качеством.
thmspl

-1

если вы хотите создать новый репозиторий с тем же проектом внутри github, а предыдущий Remote не позволяет вам сделать это, в этом случае сначала удалите этот репозиторий на github, тогда вам просто нужно удалить папку .git C: \ Users \ Shiva \ AndroidStudioProjects \ yourprojectname \ .git удалите эту папку (убедитесь, что вы нажимаете на скрытый файл, потому что эта папка скрыта)

Также нажмите на минус (кнопка «Удалить») в Android Studio. Настройка-> VersionControl. Нажмите здесь, чтобы удалить элемент управления версиями из Android, и тогда вы сможете создать новый репозиторий.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.