Віддалене походження вже існує в '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" - це назва віддаленого сховища, якщо ви хочете видалити віддалене віддалене сховище:

git remote rm upstream

8
"git remote rm origin" не працював у мене, якщо він не працює, ви спробуйте перевірити "git remote -v", це покаже вам, чи є у вашого джерела встановлений URL, якщо він, ймовірно, не вам зробив init локально і намагаються просунути його віддалено, і зробив помилковий крок, як я). Потім дотримуйтесь відповіді RobinH: git remote set-url origin git@github.com: username / projectname.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 labo repo, і це рішення було ідеальним! Дякую!
Marcelo dos Santos

Та ж ситуація, що і з ОП, і мені потрібно було це зробити, а потім рішення @ MrHus.
Шон Бін

4
Це найкраща відповідь ІМХО
kratos

83

Якщо ви помилково назвали місцеве ім'я "походженням", ви можете видалити його за допомогою наступного:

git remote rm origin

Що насправді означає "помилково названа місцева назва" походженням "? Чи можете ви пояснити це докладно? @ Ozgur
Yuan Wen

1
Це може означати, що ви додали віддалене походження, яке не вказує на сховище git. Тому, якщо ви плануєте передати всі свої зміни до ведучого, git поскаржиться, сказавши, що віддалене походження не є сховищем git.
Готем Хонавара

22

МЕТОД1->

Оскільки походження вже існує, видаліть його.

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

МЕТОД2->

Можна також змінити існуючу віддалену 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

Якщо ви намагаєтесь оновити пульт, який не існує, ви отримаєте помилку. Тож будьте обережні.

МЕТОД3->

Використовуйте команду git remote rename для перейменування існуючого віддаленого. Існуюче віддалене ім'я, наприклад, походження.

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

Щоб перевірити нове ім'я віддаленого пристрою->

git remote -v

Якщо ви не знайшли для Git, спробуйте цей підручник->

Спробуйте навчальний посібник


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", для віддаленого додавання, наприклад

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



6

У мене виникла та сама проблема, і ось, як я її виправив після проведення деяких досліджень:

  1. Завантажте GitHub для Windows або використовуйте щось подібне, що включає оболонку
  2. Відкрийте Git Shellменю завдань. Це відкриє оболонку живлення, включаючи команди Git.
  3. У оболонці перейдіть до свого старого сховища, наприклад cd C:\path\to\old\repository
  4. Показати стан старого сховища

    • Введіть, git remote -vщоб отримати віддалений шлях для отримання та натисніть віддалений. Якщо ваш локальний сховище підключено до віддаленого пристрою, воно покаже щось подібне:

      походження https: //user@bitbucket.org/team-or-user-name/myproject.git (fetch) походження 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

Я думаю, що це має спрацювати.

Так, це для init сховища та додавання нового пульта. Просто зі зміною назви.


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 видалити цю папку (переконайтесь, що ви натискаєте на прихований файл, оскільки ця папка прихована)

Також натисніть на мінус (кнопку Видалити) від андроїд-студії Налаштування-> VersionControl, натисніть тут, щоб видалити контроль версії з андроїда. І тоді ви зможете створити новий Репозиторій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.