Git depolarını GitLab'dan GitHub'a aktarın - biz, nasıl ve tuzaklar (varsa)?


205

Gerekirse biri GitLab'dan GitHub'a veri havuzları aktarabilir. Öyleyse, aynısını nasıl yapabilirim?

Ayrıca, nihayetinde GitHub'a taşımaya karar verebileceğim göz önüne alındığında, bunu yapmadan önce akılda tutmam gereken önlemler veya herhangi bir tuzak var mı (projem için kullanışlı bulabileceğim daha fazla özellik olduğu için) ).

Yanıtlar:


211

Bunları aktarabilirsiniz (sadece GitHub deposuna uzaktan kumanda ekleyerek ve iterek)

  • GitHub'da boş bir repo oluştur
  • git remote add github https://yourLogin@github.com/yourLogin/yourRepoName.git
  • git push --mirror github

Tarih aynı olacak.

Ancak erişim kontrolünü kaybedeceksiniz (GitLab'da deponuzda belirli erişim haklarına sahip ekipler)

GitHub deposunun https URL'sinde herhangi bir sorunla karşılaşırsanız:

The requested URL returned an error: 403

Tek yapmanız gereken GitHub şifrenizi girmek, ancak OP şunları önerir:

O zaman ssh yolunu itmeniz gerekebilir. Burada nasıl yapılacağı hakkında daha fazla bilgi edinebilirsiniz.

Bkz. " Git'e geri gönderme Hata Kodu 403 ölümcül: HTTP isteği başarısız oldu ".


Teşekkürler Von - Cevabınız benim için hile yaptı.Sadece tam git uzaktan cmd ekleyin ve gerekirse ssh yolunu iterek ilgili cevabınıza biraz ekledim. Umarım bu tamam.
boddhisattva

@boddhisattva Tamam, ama düzenlemenizin reddedildiğini görüyorum. Cevabı kendim de ekledim.
VonC

5
Sorunları ve etiketleri içe aktarma hakkında yorumlarınız mı var? Koddan başka bir şey çekme ve itme ile içe aktarılabilir mi? Teşekkürler.

@ YakovK Halkla İlişkiler ve sorunları dikkate alan otomatik bir işlemin farkında değilim. En azından, GitHub'daki PR şubelerdir (bkz. Stackoverflow.com/a/30542987/6309 ), böylece içe aktarılabilir.
VonC

1
@kiki tüm yerel şubeleri zorlar , ancak yerel deponuzun kendisi bir klonsa , yalnızca varsayılan yerel kullanıma alınmış şubesi olarak master'a sahip olacaktır. Kullanmadan önce, diğer yerel şubeleri, yansıtıcı uzaktan izleme dallarından sonra oluşturmanız gerekir push --mirror. stackoverflow.com/a/18911322/6309 . Ayrıca bkz. Stackoverflow.com/a/24099141/6309 (son cümle)
VonC

150

Bu ithalat depo özelliği Giriş tarafından çok kolaydır github.com,

Profil resminin yan tarafındaki +butona tıklayarak bu seçeneği bulacaksınız import repository. böyle bir sayfa bulacaksınız. resim açıklamasını buraya girin Eski deponuzun klon URL'si gerekiyor, bu da sizin durumunuzda gitlab repo url'si. daha sonra Sahip'i seçin ve ardından bu repo için ad yazın ve içe aktarma düğmesine başlamak için tıklayın.


33
GitHub'ın bunu eklediği süper kullanışlı. Ancak, güvenlik duvarının arkasında dahili bir GitLab ise, GitLab için büyük bir kullanım durumunu temsil ediyorsa çalışmaz.
abalter

8
İçe aktarma seçeneğini kullanan herkes için hızlı bir not. Bunun çalışması için GitLab'de MFA'yı devre dışı bırakmak zorunda kaldım.
D-Day

2
Bu iyi çalışıyor. Kabul edilen cevaptan çok daha iyi
LnxSlck

Şube almak istersem nasıl olur?
coderInrRain

1
Github özel depoları ücretsiz eklemeyi sağladığı için, içe aktarılan havuzun halka açık olması gerekmemektedir.
Shrey Garg


7

Bunun tersi bir sorunum vardı ve sonunda şirket politikasındaki bir değişiklik nedeniyle Github'dan Gitlab'a yüzlerce depo taşımak için kendi bash kabuk betiğimi oluşturmak zorunda kaldım.
Komut dosyası, uzaktan repo oluşturmak için Gitlab API'sini kullanır ve Github repo'yu içine iter. Henüz README.md dosyası yok, ancak sh iyi belgelenmiştir.
Aynı şey hayal ettiğim şekilde de yapılabilir. Umarım bu yardımcı olabilir.
https://github.com/mahmalsami/migrate-github-gitlab/blob/master/migrate.sh


2

GitLab'da MFA'yı etkinleştirdiyseniz, Depo Ayarları / Deposu -> Anahtarları Dağıt bölümüne gidin ve bir tane oluşturun, ardından GitHub'da repo'yu içe aktarırken giriş olarak kullanın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.