Katakanlah saya memiliki repositori di git.fedorahosted.org dan saya ingin mengkloning ini ke akun saya di github untuk memiliki taman bermain sendiri selain dari repo yang lebih "resmi" di fedorahosted. Apa langkah-langkah awal menyalin itu? Di dalam github ada tombol "garpu" yang bagus, tapi saya tidak bisa menggunakan ini karena alasan yang jelas.
Dan bagaimana saya melacak perubahan di repo fedorahosted ke dalam github?
origin
menunjuk ke lokasi terpencil kanonik. Dalam hal ini, lokasi github mungkin akan menjadi kanonik.git remote add
. Anda kemudian dapat mendorong ke salah satu dari mereka dengan secara eksplisit menyatakan remotegit push
. Misalnyagit push foobar master
untuk mendorong cabang saat ini kemaster
jarak jauhfoobar
.Ada jawaban yang dihapus pada pertanyaan ini yang memiliki tautan bermanfaat: https://help.github.com/articles/duplicating-a-repository
Intinya adalah
Contoh OP:
Di mesin lokal Anda
sumber
error: failed to push some refs to 'https://github.com/username/testrep.git'
Untuk mendorong repo yang ada ke yang berbeda, Anda perlu:
Kloning repo asli terlebih dahulu.
Dorong sumber yang dikloning ke repositori baru Anda:
Anda dapat berubah
master:master
menjadisource:destination
cabang.Jika Anda ingin mendorong komit tertentu (cabang), maka lakukan:
Pada repo asli, buat dan checkout cabang baru:
Pilih dan setel ulang ke titik yang ingin Anda mulai:
Atau pilih komit oleh
git cherry-pick
untuk menambahkan ke KEPALA yang ada.Kemudian dorong ke repo baru Anda:
Jika Anda rebasing, gunakan
-f
untuk push force (tidak disarankan). Jalankangit reflog
untuk melihat riwayat perubahan.sumber
git push ... old_branch_name:new_branch_name
memungkinkan Anda untuk mendorong cabang fitur dari repositori tua sebagai cabang utama di repositori baru. Berguna!Apakah Anda benar-benar ingin hanya mendorong repositori lokal Anda (dengan cabang lokalnya, dll.) Ke remote baru atau apakah Anda benar-benar ingin mirror remote lama (dengan semua cabang, tag, dll) pada remote baru? Jika yang terakhir ini adalah blog yang bagus tentang Cara merefleksikan repositori git dengan benar .
Saya sangat menyarankan Anda untuk membaca blog untuk beberapa detail yang sangat penting, tetapi versi singkatnya adalah ini:
Di direktori baru jalankan perintah ini:
sumber
Coba ini Cara memindahkan repositori Git lengkap
Buat repositori lokal di direktori temp-dir menggunakan:
git clone temp-dir
Buka direktori temp-dir.
Untuk melihat daftar cabang berbeda di ORI lakukan:
Periksa semua cabang yang ingin Anda salin dari ORI ke BARU menggunakan:
Sekarang ambil semua tag dari ORI menggunakan:
Sebelum melakukan langkah selanjutnya pastikan untuk memeriksa tag dan cabang lokal Anda menggunakan perintah berikut:
Sekarang hapus tautan ke repositori ORI dengan perintah berikut:
Sekarang, tautkan repositori lokal Anda ke repositori BARU yang baru dibuat menggunakan perintah berikut:
Sekarang dorong semua cabang dan tag Anda dengan perintah ini:
Anda sekarang memiliki salinan lengkap dari repo ORI Anda.
sumber
Saya menemukan solusi menggunakan set-url yang ringkas dan cukup mudah dimengerti :
cd
ke dalam repositori yang ada di mesin lokal Anda (jika Anda belum mengkloningnya, maka lakukan ini dulu)git remote set-url origin https://github.com/user/example.git
git push -u origin master
sumber
Jika Anda memiliki repositori Git yang Ada:
sumber
Cukup arahkan repo baru dengan mengubah URL repo GIT dengan perintah ini:
Contoh:
git remote set-url origin [email protected]:Batman/batmanRepoName.git
Sekarang, mendorong dan menarik terkait dengan REPO baru.
Kemudian dorong seperti biasa:
sumber
Saya memiliki masalah yang sama.
Dalam kasus saya, karena saya memiliki repositori asli di mesin lokal saya, saya telah membuat salinan di folder baru tanpa ada file tersembunyi (.git, .gitignore).
Akhirnya saya menambahkan file .gitignore ke folder yang baru dibuat.
Kemudian saya telah membuat dan menambahkan repositori baru dari jalur lokal (dalam kasus saya menggunakan GitHub Desktop).
sumber
Ini adalah cara manual untuk melakukannya
git remote set-url origin [new repo URL]
:git clone <old remote>
Buka
<repository>/.git/config
dan ubah remote (opsi url)
Dorong repositori ke GitHub:
git push
Anda juga dapat menggunakan keduanya / beberapa remote .
sumber