2012-08-15 14 views
9

Bazı değişiklikler yapmaya çalışıyorum. Ben *.js joker kullanarak oluşturmuş olabilir herhangi bir yeni javascript dosyaları eklemek için git add kullanılır. Sonra değişiklikleri işlediği ve github itilmiş: github işaretlendiğinde"git add * .js", dosyaları alt dizinlere eklemedi

 
git add *.js 
git commit -m "stuff" 
git push github master 

, ben düzenleme olmuştu tüm dosyaları boş idi. Onlar vardı, sadece boş.

Daha sonra tekrar işlemeye çalıştım ama GIT her şeyin güncel olduğunu söyledi.

Sonra geri dönüp git commit -m "stuff" yaptıktan sonra, GYTE benim ".js" dosyaların bir demet sadece joker kullanarak kattıklarını halde sahnelenen olmadığını bildiren bir mesaj görüntülenir fark: git add *.js. Bu işlem yapmaya çalıştığımda görüntülenen mesaj. Birkaç dizinleri inmek vardı Bunu düzeltmek için

 
# On branch master 
# Changes not staged for commit: 
# (use "git add/rm ..." to update what will be committed) 
# (use "git checkout -- ..." to discard changes in working directory) 
# 
#  modified: src/static/directory1/js/module1/file1.js 
#  modified: src/static/directory1/js/module1/file2.js 
#  modified: src/static/directory1/js/module2/file1.js 

yapıyor benim git add: Bu daha sonra tekrar işlenen sonra dosyalar vardı çünkü çalıştı görünüyordu ve

 
git add src/static/directory1/*.js 

itildi github:

 
git commit -m "stuff" 
git push github master 

burada bittiğini ne, neden joker işe gitmek için birkaç dizinleri aşağı gezinmek gerekti?

Teşekkürler!

cevap

8

alternatif bulmak komutunu kullanmaktır: Koşu

find . -name '*js' -exec git add {} \; 

o exec size Üzerinde çalıştığınız dosyaların listesini verecektir olmadan; Yani, bu komutu beğeninize göre ayarlamak kolaydır.

+0

Bu aslında makinemde çalışan tek şey, çok teşekkürler! –

30

Sen git senin kabuk yapmadan önce joker alabilmesi için tırnak kullanmak zorunda

git add '*.js' 

kullanmak gerekir. Tırnaklarınız yoksa, kabuk sadece geçerli dizininizdeki joker arama işlemini yapar. Sadece joker kullanarak kattıklarını rağmen

+0

Bir joker karakter verildiğinde Git'in alt dizinlere tekrar gireceğine dair herhangi bir kanıt bulamıyorum (denedim). –

+2

http://try.github.com/levels/1/challenges/7 –

+0

Tamam, orası yerel makinemde çalışmıyor gibi görünüyor. Bu belki Git'e yeni eklenen bir özellik miydi? –

12

: git add *.js

Kabuk joker genişletme alt dizinleri içine değil recurse yapar. Joker, Git'in onu görme şansı elde etmeden önce genişletilir.

git add '*.js' kullanırsanız, Git joker karakterini görür ve .js ile biten tüm yol adlarıyla eşleşir. * başlangıç ​​konumunda olduğundan, bu alt dizinlerde dahil olmak üzere tüm .js dosyalarını yinelemeli olarak ekleyecektir.

+1

Lütfen cevabımı çalma. :-) SO üzerinde puan almaya çalışıyorum ve cevabımı 30 dakikaya kadar ekledikten sonra cevabımla ilgili bir tartışma yaptık. –

+0

@AaronGray: endişelenmeyin, ne olduğunu anladım ve neden çalıştığını anladım. –

İlgili konular