Saya mencoba menghindari pola berikut di .gitignore
file saya .
MyPrject/WebApp/Scripts/special/*.js
MyPrject/WebApp/Scripts/special/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*/*.js
Kami sudah mencoba:
MyPrject/WebApp/Scripts/special/**.js
MyPrject/WebApp/Scripts/special/**/*.js
Namun ini tidak berhasil. Ini git di Windows. Apakah ada cara yang lebih ringkas untuk melakukan ini tanpa mengulanginya?
Jawaban:
Mulai git 1.8.2, ini:
Harus bekerja menurut jawaban ini . Ini juga berfungsi untuk saya di Windows 7 menggunakan Sourcetree 1.6.12.0 dan versi git yang diinstal (1.8.4-preview20130916).
Untuk mengabaikan setiap file dan folder di bawah direktori secara rekursif:
sumber
/
di awal. Contoh:/MyProject/WebApp/Scripts/special/**/*.js
.gitignore
dalam pertanyaan ini ada di root repo (direktori induk/Webapp
).foo/bar/*/*
(baris kedua)!foo/bar/**/*.js
Ini hanya berfungsi untuk satu tingkat subdirektori, tetapi tidak secara rekursif.Mengikuti halaman manual gitignore:
Jadi, ini jelas menunjukkan bahwa tidak ada cara untuk menentukan sejumlah direktori di antara dua string, seperti antara
special
danjs
.Namun demikian, Anda dapat memiliki
.gitignore
file per direktori, jadi mungkin dalam kasus Anda konten berikutdi tempat berikut
akan cukup?
sumber
MyPrject/WebApp/Scripts/special*.js
dan itu cocokMyPrject/WebApp/Scripts/specialfile.js
jugaMyPrject/WebApp/Scripts/special/a/b/c/file.js
. Namun, untuk beberapa alasan perilaku tersebut telah berubah dan solusi saya saat ini adalah mencantumkan direktori secara individual. Saya menggunakan GitHub untuk Windows.find MyPrject/WebApp/Scripts/special -type d -printf 'echo "*.js" >> %h/.gitignore\n git add %h/.gitignore\n' | sh
Ini bekerja untuk saya di osx.
sumber
Coba jalankan
git rm -r --cached MyPrject/WebApp/Scripts/special/
Direktori yang Anda sebutkan mungkin telah di-cache oleh git dan akan muncul di file yang tidak terlacak. Setelah mengosongkan cache, pastikan Anda telah menyebutkannya.gitignore
.sumber