2010-04-24 18 views
5

Dizüstü ve masaüstü arasında $ HOME dizinim için bir yedekleme aracı ve 'dolaşım profili' özelliğini kullanıyorum.Git, alt dizinlerdeki alt dizinlere göz atıyor

Sorunum, $ HOME sayfamın altında üzerinde çalışıyorum birden fazla git projeleri olan bir Geliştirme dizinim var. Git, altdizinler .git klasörlerini eklememe izin vermiyor. Bu yüzden bu projelere bağlı kalmak için değişiklikleri evimin $ HOME git repo'ma, dizüstü bilgisayarlara (nerede oluşturulduğuna ve .git dir exsits'e) çekip taahhüt etmeliyim.

Alt modüller hakkında okudum, ancak istediğim şey bu değil. Sadece çocukları .git klasörlerinin eski bir dizin gibi ele alınmasını istiyorum, böylece onları hareket ettirip yedekleyebilirim.

Bunu yapan veya nasıl bir fikrim var mı?

+4

imho, bu muhtemelen iş için yanlış bir araçtır. Dizüstü bilgisayarınızı ve masaüstünüzü senkronize etmek istiyorsanız, uyum içinde bakmak isteyebilirsiniz. $ HOME'da yaptığınız tüm çalışmaların versiyonunu yüklemek istiyorsanız, en kolay seçenek düzenli olarak rsyncs'tir, fakat elbette ki bu artışlı değildir. artımlı bir yedekleme ürününe ihtiyacınız olacak ya da rsync ve git –

+0

@Igor kullanarak bir şeyleri hackleyebilirsiniz: Genel olarak katılıyorum. Gerçi git reposunu rsync'e sahip olmak zorunda değilsiniz, ancak altmodüller doğru yol olmadığına karar verseniz bile, bunları toplu halde itme/çekme/güncelleme için kolayca komut dosyası hazırlayabilirsiniz (muhtemelen bunlar için işe yarayabilirler) amaç). – Cascabel

+0

rsnapshot, artımlı şeyi yapabilir. dürüstçe kullanmanız gereken alt modüller. Tüm reposları aktarmak için bir senaryo yazarım. Neyse git nesnelerini neden yüklemek istiyorsun? sadece transfer kolaylığı için? başka bir şey kullan. Ayrıca bu SÜPERERER üzerinde olması gereken bir soru DEĞİLDİR. insanlar neden bu programlama dışı soruları SO'ya soruyorlar. – xenoterracide

cevap

0

Ben ilk yedekleme $ HOME altında olması her .git projeler verecek bir senaryo öneriyoruz: o (hala $ HOME altında) bir yedekleme dosyası üretecektir
daha git bundle bakınız.

Ve sonra, size her aktarabilirsiniz,

Nihayet (.git projelerin haricinde senin $HOME tümünü ihtiva etmektedir) ana git repo için ("Gruba" veya) dosyalarını bu yedekleme güncellemek/ekleyebilir $ HOME'ınızı aynı Git yedekleme tekniğiyle tek dosya olarak (git bundle).

0

Geçmişte, bir Git yedekleme aracı olan gibak'u kullandım. Dosya özniteliklerine dikkat etmenin yanı sıra, ev dizininizdeki Git depolarını da ele alır.

Ancak bir sorumluluk reddi beyanı. Bir süredir kullandım, ama bazen yedek bozuldu. Bunu araştırmamıştım, ancak çalışan uygulamaların sürekli olarak ana dizininize veri yazması ile ilgili olduğundan şüpheleniyorum. Bir noktada karmaşıklar uyuşmaz ve bunu düzeltmek için bazı akıllı şeyler yapmanız gerekir (ya da yeni bir yedeklemeye başlarsınız).

En azından bir deneyin, sizin için işe yarayabilir. Bahsettiğim problem de Git'ten kaynaklanabilir. Bu 1,5 yıl önce denediğimden beri, bu arada düzeltilebilir.

2

Yapmayın. Kötü bir fikir çünkü sürümlenmiş bir deponun sürümlü bir yedeğini oluşturuyorsunuz. Sadece rsync tarafından bir yedekleme oluşturun (yine de kullanarak ebeveyni kullanabilirsiniz)

2

Kişisel olarak .profile veya .vimrc gibi bazı nokta dosyalarını senkronize etmek için git'i kullanıyorum. Seninki gibi sorunlardan kaçınmak için benim git $ HOME/dot içinde yer alıyor ve tek dosya $ HOME olarak simgeleniyor.

İlgili konular