Saya mencoba memindahkan hanya konten dari satu repositori ( repo1
) ke repositori lain yang ada ( repo2
) menggunakan perintah berikut:
git clone repo1
git clone repo2
cd repo1
git remote rm origin
git remote add repo1
git push
Tapi itu tidak berhasil. Saya meninjau posting serupa, tetapi saya hanya menemukan satu yang memindahkan folder, bukan isinya.
git
merge
repository
migrate
Mario
sumber
sumber
Jawaban:
Saya pikir perintah yang Anda cari adalah:
Setelah itu
repo2/master
akan berisi semua darirepo2/master
danrepo1/master
, dan juga akan memiliki sejarah keduanya.sumber
repo1
ke dalam subfolder (di dalamrepo1
) sebelum Anda melakukan penggabungan.Dijelaskan dengan sempurna di sini https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
Pertama, kita harus mengambil semua cabang dan tag jarak jauh dari repositori yang ada ke indeks lokal kita:
Kita dapat memeriksa cabang yang hilang yang kita perlukan untuk membuat salinan lokal:
Mari gunakan URL kloning SSH dari repositori baru kita untuk membuat remote baru di repositori lokal kita yang sudah ada:
Sekarang kita siap untuk mendorong semua cabang dan tag lokal ke remote baru bernama new-origin:
Mari buat new-origin remote default:
Ubah nama new-origin menjadi just origin, sehingga menjadi remote default:
sumber
git checkout BranchName
kemudian dorong cabang ke repo jarak jauh lagi dengangit push --all new-origin
tapi terima kasih banyakJika Anda ingin melestarikan cabang yang ada dan menjalankan riwayat, inilah salah satu cara yang berhasil untuk saya.
Sekarang, misalkan Anda ingin menjaga repo sumber dan tujuan tetap sinkron untuk jangka waktu tertentu. Misalnya, masih ada aktivitas dalam repo jarak jauh saat ini yang ingin Anda pindahkan ke repo baru / pengganti.
Untuk menurunkan pembaruan terbaru (dengan asumsi Anda tidak memiliki perubahan lokal):
NB: Saya belum menggunakan submodul, jadi saya tidak tahu langkah tambahan apa yang mungkin diperlukan jika Anda memilikinya.
sumber
Ini berfungsi untuk memindahkan repo lokal saya (termasuk riwayat) ke repo github.com jarak jauh saya. Setelah membuat repo kosong baru di GitHub.com, saya menggunakan URL pada langkah ketiga di bawah dan itu berfungsi dengan baik.
Saya menemukan ini di: https://gist.github.com/niksumeiko/8972566
sumber
Pendekatan paling sederhana jika kode sudah dilacak oleh Git, setel repositori baru sebagai "asal" Anda untuk didorong.
sumber
Saya menggunakan metode di bawah ini untuk memigrasi GIT Stash saya ke GitLab dengan mempertahankan semua cabang dan riwayat komit.
Gandakan repositori lama ke lokal.
Buat repositori kosong di GitLab.
sumber
Sepertinya Anda sudah dekat. Dengan asumsi bahwa ini bukan hanya kesalahan ketik dalam kiriman Anda, langkah 3 harus dilakukan
cd repo2
sebagai ganti repo1. Dan langkah 6git pull
tidak boleh dipaksakan. Daftar yang dikerjakan ulang:sumber
Sesuai jawaban @ Dan-Cohn Mirror-push adalah teman Anda di sini. Ini tujuan saya untuk memigrasi repo:
Mencerminkan repositori
1.Buka Git Bash.
2.Buat tiruan kosong dari repositori.
3.Mirror-push ke repositori baru.
4.Hapus repositori lokal sementara yang Anda buat pada langkah 1.
Referensi dan Kredit: https://help.github.com/en/articles/duplicating-a-repository
sumber
Ada banyak jawaban yang rumit, di sini; namun, jika Anda tidak peduli dengan pelestarian cabang, yang perlu Anda lakukan hanyalah menyetel ulang asal jarak jauh, menyetel upstream, dan mendorong.
Ini bekerja untuk melestarikan semua riwayat komit untuk saya.
sumber