SORU
16 AĞUSTOS 2010, PAZARTESİ


Koş git tüm alt dizinleri kenara Çek

Nasıl paylaşılan ebeveynlerinin dizinden cd'Her repo kök dizine ıng? olmadan birden gıt depoları güncelleyebilir miyim Hepsi ayrı git depoları olan şu var (değilalt modüller):

/plugins/cms
/plugins/admin
/plugins/chart

Hepsini aynı anda update ya da en azından benim şu anki iş akışını basitleştirmek istiyorum:

cd ~/plugins/admin
git pull origin master
cd ../chart
git pull

vb.

CEVAP
19 EYLÜL 2012, ÇARŞAMBA


Bu durumda üst dizini takip plugins çalıştırma:

find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \;

Netleştirmek için:

  • find . geçerli dizini arar
  • Dizinleri, dosyaları bulmak için -type d
  • Bir maksimum derinliği için -depth 1-alt dizin
  • -exec {} \; her için özel bir komut bulmaya çalışır
  • git --git-dir={}/.git --work-tree=$PWD/{} pull gıt tek tek dizinleri çeker

Etrafında bulmak, oynamak için -exec sonra echo kullanarak önizleme, örneğin tavsiye ederim:

find . -type d -depth 1 -exec echo git --git-dir={}/.git --work-tree=$PWD/{} status \;

Not: Eğer -depth 1 seçeneği varsa, -mindepth 1 -maxdepth 1 deneyin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Parker

    Jason Parker

    14 Aralık 2009
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • New Scientist

    New Scientis

    27 Kasım 2006