Github "fatal: asal jauh sudah ada"

466

Saya mencoba mengikuti tutorial Michael Hartl Rails tapi saya mengalami kesalahan.

Saya mendaftar di Github dan mengeluarkan kunci SSH baru dan membuat repositori baru. Tetapi ketika saya memasukkan baris berikutnya ke terminal saya mendapatkan kesalahan berikut:

Parkers-MacBook-Pro:.ssh ppreyer$ git remote add origin [email protected]:ppreyer/first_app.git
fatal: remote origin already exists.

Hanya ingin tahu apakah ada orang lain yang mengalami masalah ini?

preyer
sumber
Jika Anda belum membuat repositori git, lihat .git/configfile untuk melihat apakah asal belum dideklarasikan.
Denys Séguret
3
Saya menghadapi masalah yang sama dan menggunakan perintah "git remote rm origin" lalu gunakan perintah git remote add URL asal.
Akhzar Nazir
@AkhzarNazir tolong tambahkan ini sebagai jawaban. Ini berhasil untuk saya.
Pamela Sillah

Jawaban:

896

TL; DR Anda hanya perlu memperbarui remote yang ada:

$ git remote set-url origin [email protected]:ppreyer/first_app.git

Versi panjang:

Seperti yang ditunjukkan pesan kesalahan, sudah ada remote yang dikonfigurasi dengan nama yang sama. Jadi Anda bisa menambahkan remote baru dengan nama yang berbeda atau memperbarui yang ada jika Anda tidak membutuhkannya:

Untuk menambahkan remote baru, dipanggil sebagai contoh githubalih-alih origin(yang jelas sudah ada di sistem Anda), lakukan hal berikut:

$ git remote add github [email protected]:ppreyer/first_app.git

Ingat juga, di mana pun dalam tutorial Anda melihat "asal" Anda harus menggantinya dengan "github" . Sebagai contoh $ git push origin mastersekarang seharusnya $ git push github master.

Namun, jika Anda ingin melihat apa originyang sudah ada, Anda dapat melakukan a $ git remote -v. Jika Anda merasa ada kesalahan, Anda dapat memperbaruinya seperti ini:

$ git remote set-url origin [email protected]:ppreyer/first_app.git
Agis
sumber
5
Mengapa asal ada di repositori barunya? Dia harus memperbaiki masalahnya (memastikan misalnya asal adalah alias yang tepat untuk github) daripada membuat alias baru yang harus dia ingatkan.
Denys Séguret
1
Ok itu berhasil tetapi kemudian ketika saya pergi ke langkah berikutnya dan masukkan git push -u master asal ke terminal saya mendapatkan kesalahan berikut: ERROR: Repositori tidak ditemukan. fatal: Ujung yang jauh menutup secara tak terduga Apa artinya itu?
ppreyer
Apa artinya git remote -vkeluaran? Bisakah Anda mencoba git push origin master?
Agis
16
git remote rm origintidak cukup bekerja. Ini menghasilkan kesalahan: Tidak dapat menghapus bagian konfigurasi 'remote.origin'
Andrew Savinykh
20
@zespri: usegit remote set-url --add origin [email protected]/username/repo.git
eduncan911
342

Pendeknya,

git remote rm origin
git remote add origin [email protected]:username/myapp.git

Bekerja !

Bersulang!

Manish Shrivastava
sumber
adakah yang bisa menjelaskan hal ini? git remote rm origin
Kick Buttowski
1
@KickButtowski rm mengacu pada perintah remove yang digunakan pada * nix. Jadi perintah ini memberitahu git untuk "menghapus" rincian server jauh yang bernama "asal".
rob
Tidak perlu melakukan ini dalam 2 langkah ketika Anda bisa melakukannya di 1. Lihat jawaban saya.
Agis
37

Bagi Anda yang mengalami kesalahan "fatal: remote origin sudah ada.", Atau ketika mencoba untuk menghapus asal dan Anda mendapatkan "error: tidak dapat menghapus bagian config remote.origin", yang perlu Anda lakukan adalah atur asal secara manual.

POSH ~ Git Windows untuk Windows PowerShell (dan aplikasi GitHub untuk Windows) bermasalah dengan ini.

Saya mengalami ini, seperti saya sering melakukannya, lagi ketika mengatur gurita saya. Jadi, inilah cara saya membuatnya bekerja.

Pertama, periksa remote Anda:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin

Anda pertama-tama akan mencatat bahwa sumber saya tidak memiliki url. Setiap upaya untuk menghapusnya, mengganti namanya, dll semuanya gagal.

Jadi, ubah url secara manual:

git remote set-url --add origin https://github.com/eduncan911/eduncan911.github.io.git

Kemudian Anda dapat mengonfirmasi bahwa itu berfungsi dengan menjalankan git remote -vlagi:

C:\gd\code\octopress [source +2 ~3 -0 !]> git remote -v
octopress       https://github.com/imathis/octopress.git (fetch)
octopress       https://github.com/imathis/octopress.git (push)
origin  https://github.com/eduncan911/eduncan911.github.io.git (fetch)
origin  https://github.com/eduncan911/eduncan911.github.io.git (push)

Ini telah memperbaiki lusinan repo git yang pernah saya alami, GitHub, BitBucket GitLab, dll.

eduncan911
sumber
2
Ini berhasil untuk saya. Terima kasih @ eduncan911. Perintah github menyatakan untuk melakukan "git init" untuk membuat repositori baru pada baris perintah. Ini membuat remote asal tanpa URL menggunakan antarmuka PS itu.
mikekidder
Ah yah, itu gotcha lain dan mengapa Anda harus melakukan ini. +1 Mungkin kita harus melaporkan ini ke POSH Git di github.
eduncan911
Bagaimana cara menemukan url saat menggunakan gitlab?
Madmenyo
1
@MennoGouw Saya pikir itu pertanyaan di luar topik; tapi, biasanya ada di dasbor Repo / rumah. Ini juga dalam pengaturan untuk proyek tersebut.
eduncan911
36

Anda dapat melihat repositori jarak jauh yang Anda konfigurasikan untuk terhubung

git remote -v

Itu akan mengembalikan daftar dalam format ini:

origin  [email protected]:github/git-reference.git (fetch)
origin  [email protected]:github/git-reference.git (push)

Itu mungkin bisa membantu Anda mengetahui apa 'asal' aslinya menunjukkan.

Jika Anda ingin menjaga koneksi jarak jauh yang Anda lihat dengan -v, tetapi tetap ingin mengikuti tutorial Rails tanpa harus mengingat 'github' (atau nama lain) untuk repo tutorial Anda, Anda dapat mengganti nama repositori Anda yang lain dengan perintah:

git remote rename [current name] [new name]

seperti dalam:

git remote rename origin oldrepo

Anda kemudian dapat melanjutkan tutorial Anda.

Mark Semsel
sumber
35

Pertama lakukan:

git remote rm origin

kemudian

git remote add origin https://github.com/your_user/your_app.git

dan voila! Bekerja untukku!

Obed Castillo
sumber
Mengapa menghapus asal? Apakah ada cara kita dapat menambahkan sesuatu, bukan asal?
Abhils
28

Dalam kasus khusus yang Anda buat repositori baru mulai dari repositori lama yang Anda gunakan sebagai templat (Jangan lakukan ini jika ini bukan kasus Anda). Hapus seluruh file git dari repositori lama sehingga Anda dapat memulai yang baru:

rm -rf .git

Dan kemudian restart repositori git baru seperti biasa:

git init
git add whatever.wvr ("git add --all" if you want to add all files)
git commit -m "first commit"
git remote add origin [email protected]:ppreyer/first_app.git
git push -u origin master
Wilmer E. Henao
sumber
13

Jika Anda perlu memeriksa repo jarak jauh mana yang telah terhubung dengan repo lokal Anda, ada cmd:

git remote -v

Sekarang jika Anda ingin menghapus repo jarak jauh (katakanlah, asal) maka yang dapat Anda lakukan adalah:

git remote rm origin
Samarth Shah
sumber
Ini lebih mirip komentar daripada jawaban. Dengan sedikit rep, Anda dapat memposting komentar .
Nathan Tuggy
@NathanTuggy Tidak, ini jawaban yang lengkap, dan menurut pendapat saya, lebih langsung daripada yang paling populer di utas ini.
daOnlyBG
@daOnlyBG: Saya tidak yakin seperti apa jawabannya ketika saya melihatnya, karena itu sebelum komentar terkunci di masa tenggang (dan karena itu mungkin telah diedit secara diam-diam). Tapi sekarang, itu cukup lengkap, saya setuju.
Nathan Tuggy
@NathanTuggy Woah, tidak tahu ada suntingan sunyi pada suatu waktu. Itu menjelaskan.
daOnlyBG
7

Pesan kesalahan itu menunjukkan bahwa Anda sudah memiliki remote di direktori git Anda. Jika Anda puas dengan remote itu, Anda bisa mendorong kode Anda. Jika tidak atau jika Anda tidak bisa mendorong hanya:

git remote remove origin
git remote add origin [email protected]:ppreyer/first_app.git

Voa!

TuanHanachoo
sumber
7

Konsep remotehanyalah URL repositori jarak jauh Anda.

Ini originadalah alias yang menunjuk ke URL itu. Jadi alih-alih menulis seluruh URL setiap kali kami ingin mendorong sesuatu ke repositori kami, kami hanya menggunakan alias ini dan menjalankan:

git push -u origin master

Beritahukan git ke pushkode kita dari cabang master lokal kita ke remote repositori asal yang.

Setiap kali kita mengkloning repositori , git membuat alias ini untuk kita secara default. Juga setiap kali kita membuat repositori baru , kita hanya membuatnya sendiri.

Apapun masalahnya, kita selalu dapat mengubah nama ini menjadi apa pun yang kita suka, menjalankan ini:

git remote rename [current-name] [new-name]

Karena disimpan di sisi klien dari aplikasi git (di mesin kami) mengubahnya tidak akan mempengaruhi apa pun dalam proses pengembangan kami, juga di repositori jarak jauh kami. Ingat, itu hanya nama yang menunjuk ke alamat .

Satu-satunya hal yang berubah di sini dengan mengganti nama alias, adalah bahwa kita harus mendeklarasikan nama baru ini setiap kali kita mendorong sesuatu ke repositori kita.

git push -u my-remote-alias master

Jelas satu nama tidak dapat menunjuk ke dua alamat yang berbeda. Itu sebabnya Anda mendapatkan pesan kesalahan ini. Sudah ada nama alias origindi mesin lokal Anda. Untuk melihat berapa banyak alias yang Anda miliki dan berapa jumlahnya, Anda dapat memulai perintah ini:

git remote -v

Ini akan menunjukkan kepada Anda semua alias yang Anda miliki plus URL yang sesuai.

Anda juga dapat menghapusnya jika Anda suka menjalankan ini:

git remote rm my-remote-alias

Jadi secara singkat:

  • cari tahu apa yang sudah Anda miliki,
  • hapus atau ganti namanya,
  • tambahkan alias baru Anda.

Selamat coding.

Kobayashi
sumber
5

jika Anda sudah menambahkan proyek untuk penyimpanan lain, seperti Anda mengunggah ke github dan kemudian Anda mengunggah ke bitbucket maka itu menunjukkan jenis Kesalahan ini.

Cara menghapus Kesalahan: hapus file git-hub di proyek Anda dan kemudian ulangi langkah-langkah berikut ...

git init       
git remote add origin [email protected]:Yourname/firstdemotry.git  
git add -A  
git commit -m 'Message'  
git push -u origin master  
Chaudhary Prakash
sumber
5

Itu juga bisa terjadi jika Anda menjalankan perintah dalam direktori tanpa git diinisialisasi. Jika demikian, jalankan dahulu:

git init
Jan Pi
sumber
4

Anda harus menggunakan git

akar

jika tidak maka gunakan sudo

untuk menghapus asal:

git remote menghapus asal

untuk menambahkan asal:

git remote tambahkan asal http: // giturl

karan
sumber
3
  • $ git remote add origin [email protected]:abc/backend/abc.git

    Dalam perintah ini, asal bukan bagian dari perintah itu hanya nama repositori jarak jauh Anda. Anda dapat menggunakan nama apa pun yang Anda inginkan.

    • Pertama, Anda dapat memeriksa apa yang dikandungnya menggunakan perintah di bawah ini

    $ git remote -v

    Ini akan memberi Anda hasil seperti ini origin [email protected]:abc/backend/abc.git (fetch) origin [email protected]:abc/backend/abc.git (push) origin1 [email protected]:abc/backend/abc.git (fetch) origin1 [email protected]:abc/backend/abc.git (push)

    jika itu berisi jalur repositori jarak jauh Anda maka Anda bisa langsung mendorongnya tanpa menambahkan asal lagi

    • Jika itu tidak termasuk jalur repositori jarak jauh Anda

    Kemudian Anda dapat menambahkan asal baru dengan nama yang berbeda dan menggunakannya untuk mendorong suka $ git remote add origin101 [email protected]:abc/backend/abc.git

    Atau Anda dapat mengganti nama nama asal yang sudah ada, tambahkan asal Anda

    git remote rename origin destination

    jalankan perintah di bawah ini lagi

    $ git remote -v

    destination [email protected]:abc/backend/abc.git (fetch) destination [email protected]:abc/backend/abc.git (push)

    Ini akan mengubah nama repo yang ada sehingga Anda dapat menggunakan nama asal itu

    Atau Anda bisa menghapus asal Anda yang sudah ada dan menambahkan asal Anda

    git remote rm destination

Foram Sojitra
sumber
3

Coba ini

  • cd existing_repo
  • git remote ganti nama asal-usul
Sreeraj VR
sumber
Bro terima kasih, ini adalah satu-satunya hal yang berhasil untuk saya.
Akshat Tamrakar
2

menghadapi kesalahan yang sama sambil menambahkan repositori ke git hun menggunakan git bash di windows

 git remote add origin https://github.com/axaysushir/netflix_page_clone.git

fatal: asal jauh sudah ada.

fatal: remote origin already exists.

 ! [rejected]        master -> master (fetch first)

error: gagal mendorong beberapa referensi ke ' https://github.com/axaysushir/meditation_app_using_js.git '

Perbarui repositori dengan mengikuti perintah

$ git remote set-url origin https://github.com/axaysushir/netflix_page_clone.git

kemudian tambahkan repositori menggunakan git remote add github, bukan git remote add origin

$ git remote add github https://github.com/axaysushir/netflix_page_clone.git

Dan kemudian tulis perintah berikut daripada git push origin master. Ini akan mengunggah repositori Anda ke github

$ git push github master
akshay_sushir
sumber
2

perbarui asal jika sudah menggunakan perintah ini

git remote set-url origin https://github.com/SriramUmapathy/ReduxLearning.git
Sriram
sumber
0

Pertama periksa Untuk melihat berapa banyak alias yang Anda miliki dan apa saja, Anda dapat menjalankan perintah ini git remote -v

Kemudian lihat di repositori mana Anda berada kemudian coba git remote set-url - tambahkan [Lalu tautan repositori Anda] git push -u master asal

Sarthak Dalabehera
sumber
0

Setidaknya pada bash, kita dapat memaksa nilai kembali kode keluar dari perintah menjadi 0

Anda dapat menghapus remote lama dan menambahkannya lagi

git remote remove $1 || true
git remote add $1 $2
motia
sumber
0

Jika Anda ingin melakukan melalui GUI lakukan hal berikut:

  1. Pastikan "file tersembunyi" terlihat di folder proyek Anda
  2. Buka direktori .git
  3. Edit file url di file config.txt dan simpan file itu!
menginspirasi Michael
sumber