2016-03-22 9 views
2

Aşama değişiklikleri olmayan her dosyada kabuk komutunu çalıştırmak istiyorum.GIT, Değiştirilen her dosyaya komut verilsin mi?

E.g. git status

On branch xxxxxxx 
Your branch is up-to-date with 'origin/xxxxxxxxx'. 

Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

    modified: client/.../reports.coffee 
    modified: client.../tools.coffee 

gösteriyorsa ben dosyaları reports.coffee ve tools.coffee üzerinde komut çalıştırmak istiyorum.

find kullanmak istemiyorum çünkü dosyalar farklı zamanlarda değişebilir. Bunu nasıl başarabilirim konusunda bir fikrin var mı?

cevap

2

olduğunu da bu komutu kullanabilirsiniz: Eğer

+0

Makinemde çalışmıyor. Sanırım grep'te hata var ''. –

+0

Benim için git durum -s baskıları "M go-lib /..../ user.go" –

+0

'git status -s': kısa biçiminde çalışan ağaç durumunu yazdırır; 'grep '??'': izlenmeyen dosyaların durumu olan "??" dahil olmak üzere yalnızca satırları filtreler; 'cut -f2 -d ''': yalnızca dizenin ikinci bölümünü tutacak, parçalar bir boşlukla ayrılacak – dvxam

1

Sen git kanca kullanmalıdır:

https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

Dosyaların .git/hooks değişmeye bulacaksınız.

Here iyi öğretici

+0

Hangi kanca kullanmalıyım yürütmek isteyen emriyle

git status -s | grep '??' | cut -f2 -d' ' | xargs echo

ve değiştirme echo? –

+0

Komut dosyanızı tam olarak ne zaman yürütmek istediğinize bağlıdır. Örneğin, her bir işlemdeki kayıtlı olmayan dosyaları kontrol etmek isterseniz, 'pre-commit.sample' dosyasını değiştirmelisiniz: " Gitmeden önce her def çalıştırıldığında, önceden yapılan komut dosyası yürütülür. taahhüt mesajı veya bir taahhüt nesnesi üretir. İşlenecek olan anlık görüntüyü incelemek için bu kancayı kullanabilirsiniz. " – Till

İlgili konular