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


548

Saya punya proyek saya di GitHub di beberapa lokasi git@github.com:myname/oldrep.git,.

Sekarang saya ingin mendorong semua kode saya ke repositori baru di beberapa lokasi lain git@github.com:newname/newrep.git,.

Saya menggunakan perintah:

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

tapi saya menerima ini:

fatal: asal jauh sudah ada.


6
Berikan output dari perintah $> git remote -v show
sykora


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 git@github.com: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 git@github.com:myname/oldrep.git  
git remote add testtest git@github.com: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

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 git@github.com: 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 git@github.com: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


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

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 git@github.com: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


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 = myname@example.com

[github]
        user = myname
        token = ff44ff8da195fee471eed6543b53f1ff

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

[remote "github"]
        url = git@github.com: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).


10
  1. git remote rm origin

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

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

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


8

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

git remote tambahkan github git@github.com: myname / oldrep.git


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

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://user@bitbucket.org/team-or-user-name/myproject.git
git push -u mynewrepo master # To push changes for the first time

Itu dia.


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://someone@bitbucket.org/somewhere/something.git

4

Anda harus mengubah nama repositori jauh menjadi sesuatu yang lain.

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

untuk

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

Saya pikir ini harus berhasil.

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


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).


1

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


0

Anda perlu memeriksa origindan menambahkan jika tidak ada.

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

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


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

-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.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.