Asal jauh sudah ada di 'git push' ke repositori baru

548

Saya punya proyek saya di GitHub di beberapa lokasi [email protected]:myname/oldrep.git,.

Sekarang saya ingin mendorong semua kode saya ke repositori baru di beberapa lokasi lain [email protected]:newname/newrep.git,.

Saya menggunakan perintah:

git remote add origin [email protected]:myname/oldrep.git

tapi saya menerima ini:

fatal: asal jauh sudah ada.

Uzumaki Naruto
sumber
6
Berikan output dari perintah $> git remote -v show
sykora
kemungkinan duplikat Github "fatal: remote origin sudah ada"
That Brazilian Guy
Cara yang baik adalah dengan menggunakan "impor dari repositori lain" di bagian bawah repositori baru Anda, jika Anda tahu URL yang lama.
JW.ZG
Pertanyaan serupa diajukan di sini: stackoverflow.com/questions/2432764/…
jciloa
1
Jika Anda ingin menyimpan remote asli Anda cukup menggunakan nama yang berbeda git remote add origin2 ...., tetapi jika Anda hanya perlu menekan sekali tanpa mengubah konfigurasi repo maka Anda cukup melakukannya git push [email protected]:user/another-project.git master:master.
ccpizza

Jawaban:

870

Anda mendapatkan kesalahan ini karena "asal" tidak tersedia. "asal" adalah konvensi bukan bagian dari perintah. "origin" adalah nama lokal repositori jarak jauh.

Misalnya Anda juga bisa menulis:

git remote add myorigin [email protected]:myname/oldrep.git  
git remote add testtest [email protected]:myname/oldrep.git

Lihat manual:

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

Untuk menghapus repositori jarak jauh yang Anda masukkan:

git remote rm origin

Lagi, "asal" adalah nama repositori jarak jauh jika Anda ingin menghapus remote "upstream":

git remote rm upstream
Tuan
sumber
8
"git remote rm origin" tidak berfungsi dari saya, jika tidak berhasil, coba Anda periksa dengan "git remote -v" ini akan menunjukkan kepada Anda apakah asal Anda memiliki set url, jika tidak mungkin Anda melakukan init secara lokal dan mencoba untuk mendorongnya jauh, dan membuat kesalahan langkah seperti saya). Kemudian ikuti jawaban RobinH: git remote set-url origin [email protected]: username / projectname.git
Clarence Liu
1
periksa jawaban ini untuk memaksa url.
srodriguex
"git remote rm origin" bekerja seperti pesona, luar biasa! :) puhh, saya baru mengenal terminologi git jadi itu pencarian yang lebih besar, tapi jawaban Anda banyak membantu saya. :) Terima kasih!
Martin Pfeffer
3
git push -u origin master --force
Ronnie Royston
--Paksa adalah solusi!
pencipta
260

Solusi sebelumnya tampaknya mengabaikan asal, dan mereka hanya menyarankan untuk menggunakan nama lain. Ketika Anda hanya ingin menggunakan git push origin, teruslah membaca.

Masalah muncul karena urutan konfigurasi Git yang salah diikuti. Anda mungkin sudah menambahkan 'git origin' ke konfigurasi .git Anda.

Anda dapat mengubah asal remote dalam konfigurasi Git Anda dengan baris berikut:

git remote set-url origin [email protected]:username/projectname.git

Perintah ini menetapkan URL baru untuk repositori Git yang ingin Anda dorong. Yang penting adalah mengisi nama pengguna dan nama proyek Anda sendiri

Hoetmaaiers
sumber
7
Terima kasih, persis apa yang harus saya lakukan :)
winkbrace
Fiexd ini untukku. Tapi yang benar-benar membantu saya dengan masalah ini adalah karena saya pengguna portableGit yang diinstal dengan Gihub untuk windows. Saya menemukan solusinya di sini
PerseP
Bagus! Saya perlu mengubah repo gitorious saya ke git lab repo dan solusi ini sempurna! Terima kasih!
Marcelo dos Santos
Situasi yang sama seperti OP, dan saya perlu melakukan ini dan kemudian solusi @HusHus.
Sean the Bean
4
Ini adalah jawaban terbaik IMHO
kratos
83

Jika Anda keliru menyebut nama lokal sebagai "asal", Anda dapat menghapusnya dengan yang berikut:

git remote rm origin
Özgür
sumber
Apa arti "keliru menyebut nama lokal sebagai 'asal'"? Bisakah Anda menjelaskannya secara terperinci? @Ozgur
Yuan Wen
1
Ini bisa berarti bahwa Anda menambahkan asal remote yang tidak menunjuk ke repositori git. Karena itu, jika Anda berencana untuk mendorong semua perubahan Anda ke master, git akan mengeluh mengatakan bahwa asal remote bukan repositori git.
Gautham Honnavara
22

METODE1->

Karena asal sudah ada hapus.

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

METH2->

Anda juga dapat mengubah URL repositori jarak jauh yang ada dengan -> git remote set-url

Jika Anda memperbarui untuk menggunakan HTTPS

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

Jika Anda memperbarui untuk menggunakan SSH

git remote set-url origin [email protected]:USERNAME/REPOSITORY.git

Jika mencoba memperbarui remote yang tidak ada, Anda akan menerima kesalahan. Jadi berhati-hatilah.

METHOD3->

Gunakan perintah git remote rename untuk mengganti nama remote yang ada. Nama jarak jauh yang ada, misalnya, asal.

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

Untuk memverifikasi nama baru jarak jauh->

git remote -v

Jika baru menggunakan Git, coba tutorial ini->

COBALAH GIT TUTORIAL

shaurya uppal
sumber
1
Terima kasih banyak. Saya diunduh, orang lain git dan kemudian ingin mengkloningnya ke dalam GitHub saya juga. Akhirnya, saya berhasil menggunakan metode pertama Anda.
Naimur Hasan
17

Anda cukup mengedit file konfigurasi Anda dalam editor teks.

Dalam ~/.gitconfigAnda perlu memasukkan sesuatu seperti berikut:

[user]
        name  = Uzumaki Naruto
        email = [email protected]

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

Dalam oldrep/.git/configfile (dalam file konfigurasi repositori Anda):

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

Jika ada bagian jarak jauh di file konfigurasi repositori Anda, dan URL cocok, Anda hanya perlu menambahkan konfigurasi push. Jika Anda menggunakan URL publik untuk mengambil, Anda dapat memasukkan URL untuk mendorong sebagai 'pushurl' (peringatan: ini membutuhkan versi Git yang baru dirilis 1.6.4).

Jakub Narębski
sumber
10
  1. git remote rm origin

  2. git remote -v Itu tidak akan menampilkan nama repositori apa pun

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

  4. git push origin master Ini akan memulai proses dan membuat cabang baru. Anda dapat melihat pekerjaan Anda didorong ke github.

dev
sumber
8

Anda tidak harus menghapus remote "asal" yang ada, cukup gunakan nama selain "asal" untuk menambahkan jarak jauh Anda, mis

git remote tambahkan github [email protected]: myname / oldrep.git

mpelzsherman
sumber
8
git remote rm origin
git remote add origin [email protected]:username/myapp.git
Aayushi
sumber
6

Saya mendapat masalah yang sama, dan inilah cara saya memperbaikinya setelah melakukan beberapa penelitian:

  1. Unduh GitHub untuk Windows atau gunakan sesuatu yang serupa, yang mencakup sebuah shell
  2. Buka menu Git Shelldari tugas. Ini akan membuka shell daya termasuk perintah Git.
  3. Dalam shell, alihkan ke repositori lama Anda, mis cd C:\path\to\old\repository
  4. Tampilkan status repositori lama

  5. Sekarang hapus repositori jarak jauh dari repositori lokal dengan menggunakan

    git remote rm origin
    
  6. Periksa lagi dengan langkah 4. Seharusnya originhanya ditampilkan , alih-alih jalur ambil dan tekan.

  7. Sekarang repositori jarak jauh lama Anda terputus, Anda dapat menambahkan repositori jarak jauh yang baru. Gunakan yang berikut ini untuk terhubung ke repositori baru Anda.

Catatan: Jika Anda menggunakan Bitbucket, Anda harus membuat proyek di Bitbucket terlebih dahulu. Setelah dibuat, Bitbucket akan menampilkan semua perintah Git yang diperlukan untuk mendorong repositori Anda ke jarak jauh, yang terlihat mirip dengan cuplikan kode berikutnya. Namun, ini juga berfungsi untuk repositori lain.

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

Itu dia.

Michael
sumber
5

Saya memiliki masalah yang sama ketika saya pertama kali mengatur menggunakan Bitbucket .

Masalah saya adalah bahwa saya perlu mengubah kata asal untuk sesuatu yang didefinisikan sendiri. Saya menggunakan nama aplikasi. Begitu:

git remote add AppName https://[email protected]/somewhere/something.git
Michael Murphy
sumber
4

Anda harus mengubah nama repositori jauh menjadi sesuatu yang lain.

git remote add origin [email protected]:myname/oldrep.git

untuk

git remote add neworigin [email protected]:myname/oldrep.git

Saya pikir ini harus berhasil.

Ya, ini untuk init repositori dan menambahkan remote baru. Hanya dengan pergantian nama.

nirvanastack
sumber
3

Anda juga bisa mengubah nama repositori yang ingin Anda tekan dalam file REPOHOME / .git / config

(di mana REPOHOME adalah jalur ke klon repositori lokal Anda).

nolim1t
sumber
1

Ini juga bisa terjadi ketika Anda lupa untuk membuat komitmen pertama.

Clay Morton
sumber
0

Anda perlu memeriksa origindan menambahkan jika tidak ada.

if ! git config remote.origin.url >/dev/null; then
    git remote add origin [email protected]:john/doe.git
fi

Buat file check.sh, rekatkan skrip, perbarui URL repositori git Anda dan jalankan ./check.sh.

Madan Sapkota
sumber
0

Langkah 1

git remote rm origin

Langkah 2

git remote add origin enter_your_repository_url

Contoh:

git remote add origin https://github.com/my_username/repository_name.git
Sarath Chandran
sumber
-1

Pertama, tulis baris kode ini untuk remote yang dihapus:

$ git remote rm origin

dan kemudian tulis baris ini:

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

Ini berfungsi dengan baik.

Khadim Rana
sumber
tolong coba berikan lebih banyak penjelasan untuk memberikan nilai lebih pada jawaban Anda
Zeina
Saya tidak yakin apakah itu membantu seseorang untuk menambahkan salah satu repositori github Anda sebagai asal yang jauh. Pertanyaan ini sudah dijawab beberapa kali. Periksa pertanyaan lain sebelum membuat yang baru dengan kualitas rendah.
thmspl
-1

jika Anda ingin membuat repositori baru dengan proyek yang sama di dalam github dan Remote sebelumnya tidak memungkinkan Anda untuk melakukannya dalam hal itu Hapus Pertama Repositori di github maka Anda hanya perlu menghapus folder .git C: \ Users \ Shiva \ AndroidStudioProjects \ yourprojectname \ .git hapus folder itu , (pastikan Anda mengklik file tersembunyi karena folder ini disembunyikan)

Juga klik pada minus (tombol Hapus) dari studio android Pengaturan-> VersionControl klik di sini untuk menghapus kontrol Versi dari android Dan kemudian Anda akan dapat membuat Repositori baru.

Shivam Sharma
sumber