History Kaybetmeden Git Mirror ile Migration

History Kaybetmeden Git Mirror ile Migration

Versiyon kontrol dediğimizde artık aklımıza ilk gelenden ziyade tek aklımıza gelen teklonoji hiç şüpesiz git. Linux ile üvey kardeş de sayıldıklarından penguene gönül verenlerinde ilgi odağı.[1]Linus Torvalds ve Git

Github'dan gitlab'e veya eski bir gitlab sürümünden yeni bir gitlab sürümüne geçmek istiyorsanız ( gitlab backup restore, farklı versiyonları desteklemiyor ) ve bunu yaparken history, tag, branch vs kaybetmek istemiyorsanız doğru yerdesiniz.

O zaman haydi, helva yapalım...

Adım 1:

git clone --mirror old-repo-url new-repo

Clone'u hepimiz kullanmışızdır, mirror ne peki? Direk dökümantasyondan copy/paste;

Compared to --bare, --mirror not only maps local branches of the source to local branches of the target, it maps all refs (including remote-tracking branches, notes etc.) and sets up a refspec configuration such that all these refs are overwritten by a git remote update in the target repository.

Adım 2:

cd new-repo
git remote remove origin

Eski repoya olan bağlantıyı kaldırıyoruz.

Not: Aslında bu adım şart değil. Birden fazla uzak repoya bağlı olabilirsiniz. Ama bunu yapmak gelecekte komutlarınızı kolaylaştırır ve sayısını azaltır. Yönetim maliyetlerini de düşürür. Bunun haricinde bu makaleyi yedekleme için okuyorsanız dediğim gibi bu adımı atlıyabilirsiniz.

Adım 3:

Bu adımı uygulamadan önce, yeni reponuzun yeni git sunucunuzda oluşturulmuş olması gerekiyor!

git remote add origin new-repo-url

Adım 4:

Kısık ateşte kaynayana kadar karıştırın.

git push --all
git push --tags

Adım 5: ( ÖNEMLI )

cd ..
rm -rf new-repo
git clone new-repo-url new-repo

İlk adımda gerçekleştirilen clone, yeni commitler için kullanılamaz. Eğer bu adımı atlarsanız yeni commitler yapıp bunları pushlayamazsınız.

Eski clone'u dönüştürmenin bir yolunu ben bilmiyorum açıkcası çok da zaman harcamadım bulmak için de pek yok gibi.
Yeni git'iniz hayırlı olsun... 🙂

Yorum Yapın