Git dalını kendi deposuna nasıl taşırım?


180

Ayrı bir Git deposuna taşımak istediğim bir şubem var ve ideal olarak bu dalın geçmişini bu süreçte saklıyorum. Şimdiye kadar bakıyordum git filter-branch, ancak yapmak istediğim şeyi yapıp yapamayacağını anlayamıyorum.

Git dalını kendi deposuna nasıl çıkarabilirim?

Yanıtlar:


281

Bir dalı yeni bir depoya kolayca aktarabilirsiniz. Tüm tarihi onunla birlikte gidecek. Daha sonra şubenin orijinal depodan silinip silinmeyeceğini seçebilirsiniz.

Örneğin

git push url://to/new/repository.git branch-to-move:new-branch-name

Yeni bir havuz için, yeni şube adı genellikle ana bilgidir.

Yeni, boş bir havuz oluşturmakla yapılabilir git init.


15
Herkesin merak etmesi durumunda, URL'yi Git depo dizini yolu ile değiştirdim ve bu mükemmel çalıştı.
Aupajo

48
Şube adını yeni depoda da adlandırabilirsiniz: git push url://to/new/repository.git branch-to-move:new-branch-name
Yves Van Broekhoven

4
Yves'in yukarıdaki yorumu doğrudur, aksi takdirde orada usta olmazsınız ve klonlama işlemi sonuçlanır warning: remote HEAD refers to nonexistent ref, unable to checkout.. Zaten bu aşamada iseniz, sadece gidin git checkout -b branch-to-moveve güvendesiniz ya da sadece git checkout -b masterana
dalınız var

git checkout -b masterEkranda olduğunu benim sorun çözüldü error: src refspec master does not match any.(sadece ben neden şube adını görmedim merak ediyorum) Teşekkür ederim
kangkyu

3
Bu cevabın sizin için de kafa karıştırıcı olması durumunda, çalışmasını sağlamak için bunu nasıl anladım: 1) terminalinizde, yeni bir repoya dönüştürmek istediğiniz repo ve şubeyi içeren dizinde olun; 2) urlgit@github.com gibi bir git url'si olmalıdır: brianzelip / groceries.git; 3) branch-to-moveyeni bir repo yapmak istediğiniz mevcut repo dalıdır; 4) new-branch-name: Yeni repo yeni şube için istediğiniz ismi yani oluşturuluyor olduğu master.
Brian Zelip

19

Bu, tüm şubelerin geçmişini koruyacak, ancak kopyasını özellikle bir şubeye işaret edecektir:

git clone -b newbranch CurrentRepo NewRepo

Bu hiçbir şeyi 'taşımaz', sadece bir kopyasını oluşturur.


2
Kayda değer clone -byeni. Git> = 1.6.5 gerektirir (Ekim 2009'da yayınlandı).
CB Bailey

Bunu işe almakta zorlandım, ama Charles Bailey'nin mesajını görmeden önceydi.
Aupajo
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.