Git deposunu nasıl yedeklerim?


26

SVN'den git'e geçmeyi planlıyorum. Svn ile yedeklemek istediğimde sadece repo klasörümü kopyalarım. Ancak git'in bir tane yok, ne yapmalıyım?

Ayrı bir sürücüde bir klon oluşturup projemden çekerek güncellemeli miyim? O zaman bu klasörü yakabilir / arşivleyebilirim ve tüm geçmişe sahip olur mu?

Bu muhtemelen açıktır ancak yedeklere gelince emin olmak istiyorum. Hala bir kök deposu varmış gibi davranıyorum.


Ayrıca bakınız: GitHub deposunu yedekleme (cevaplar GitHub dışındaki projeler için de geçerli)
Martin Thoma

Yanıtlar:


14

Sadece kopyala. git yapar sadece normal dizin görünümleri gizlendiği, bir Repo klasörünü kullanın. (Klasör .git* nix sistemlerinde adlandırılmıştır , bu nedenle yalnızca kullanıyorsanız görünür ls -a. Windows'ta "gizli" özniteliği belirlediğini düşünüyorum, ancak Windows ortamında hiç gitmediğimden emin değilim. orada nasıl işlenir.)


Bir kaç proje dosyasını bagajımda görmezden geliyorum. Yani tam anlamıyla kopyalayabilir miyim? (linux ile aynı şekilde çalıştığını farz edeceğim). Yani klon sadece bir dosya kopyası mı? sanırım istediğim tüm verileri klasörde çekiyorsam. .Git dosyaları olduğunu kontrol ettim ama svn bagajımda .svn dosyaları var ve geçmiş verilerinin orada olup olmadığını kontrol

2
Windows'ta hala .git, "Gizli" özniteliği var.
Gravity

1
@ acidzombie24: .gitDizin , tarih dahil, tüm depo durumunu içerir . (Bu "dağıtılmış" kısımdır.)
saat

5
@grawity: dahası "kendi kendine yeten" kısmı, dağıtılan bölüm kendi kendine yer alan depolar arasında değişiklik yaptığınız zamandır :)
akira

19

Akira cevabı doğrudur, ancak çıplak bir repo (biraz daha küçük bir yedekleme için) oluşturmak için -mirror ekleyebilirsiniz.

Aşağıdaki stratejiyi kullanıyoruz (neredeyse aynen):

git clone --mirror yourrepo backup.repo
tar cjf backup.repo.tar.bz2 backup.repo
scp backup.tar.bz2 ssh://somewhereelse

Ardından, yedeklemenizden kurtarmak için:

tar xjf backup.repo.tar.bz2
git clone backup.repo yourrepo

2
Bu yardımcı olur, teşekkürler. Çalışan ağacı geri yüklemek için yedeklenmiş depoyu nasıl kullanırım?
Jonathan Day

10

Git paket kullanıyorum . Bir kopya dosyası (bir yedekleme dosyası) yapmak için aşağıdakileri yürütün:

git bundle create backup.bundle master

Branch master ile depoyu geri yüklemek için sadece backup.bundle dosyasını kopyalayın:

git clone backup.bundle -b master my-project

2

başka bir yerde yeni bir klon oluşturun:

 % git clone yourepo somewhereelse

btw, git bir repo klasörüne sahiptir , alt kopyanızın altındaki çalışma kopyanızda bulabilirsiniz .git. çalışan her kopya bu "repo klasörüne" sahiptir.


10
Bir klonun yedek olarak kabul edildiğini sanmıyorum, çünkü tam bir kopyası değil . En azından klonlanmış reponun uzak dalları klonda kaybolur ve klonlanmış reponun dalları klonda uzak dallar olarak görünür.
sleske
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.