Git alt dizini olmayan bir dizini yedeklemek için rsync nasıl kullanılır?


43

cDizini alt dizin dışındaki tüm alt dizinlerle kopyalamak istiyorum ./git. Bunu kullanarak yapıyorum rsync:

echo "copy c and sh files "
rsync -a --include='*.c' --include='*.sh' --include='*/' --exclude='*' ~/c/ ~/Dropbox/Public/c
# remove .git directory = do not send it to dropbox. Thx to Tomasz Sowa
rm -rf ~/Dropbox/Public/c/.git

Daha iyisini yapabilir miyim?

Yanıtlar:


48

Sadece .git için açık bir hariç tutma ekleyin:

rsync -a --exclude='.git/' --include='*.c' --include='*.sh' --include='*/' --exclude='*' ~/c/ ~/Dropbox/Public/c

Başka bir seçenek, ~/.cvsignorehariç tutmak istediğiniz diğer dizinlerle birlikte aşağıdaki satırı içerecek şekilde oluşturmaktır :

.git/


İyi çalışıyor Teşekkür. Başarı olmadan bazı seçenekler deniyordum.
Adam

@Adam: Bu cevaptan memnun kaldıysanız, lütfen soldaki onay işaretini işaretleyin.
goldilock

Nasıl yol vermeniz gerektiği belirtildi --exclude. Bununla ilgili sorunlarınız varsa bu cevabı kontrol edin .
totymedli

32

Sadece kullanabilirsin rsync --cvs-exclude. Ayrıca .gitdizinleri yok sayar .

Ancak, bunun coreMagento kaynak dosyalarında meydana gelen dizini de göz ardı etmesine dikkat edin .


12
But
but

10
Bu, üst düzey .gitdizin için çalışır ancak .gitalt modüllerdeki dizinler için geçerli değildir . Ayrıca Git gibi dosyaları görmezden gelmez .gitmodules.
maxschlepzig
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.