Jadual Kandungan
Fail atau direktori
Kad liar
Ekspresi pendakap persegi
Tandatangan sihir
Atas
icase
harfiah
glob
attr
tidak termasuk
Tandatangan gabungan
Rumah hujung hadapan web tutorial css Pathspec git dan cara menggunakannya

Pathspec git dan cara menggunakannya

Apr 16, 2025 am 11:53 AM

Pathspec git dan cara menggunakannya

Dalam perintah git<pathspec></pathspec> Parameter: Penggunaan fleksibel fungsi Git yang kuat

Semasa mengkaji dokumentasi arahan git, anda mungkin dapati bahawa banyak arahan mengandungi<pathspec></pathspec> Pilihan. Pada mulanya, anda mungkin fikir ini hanyalah pernyataan teknikal "jalan" dan hanya boleh menerima direktori dan nama fail. Walau bagaimanapun, selepas pemahaman yang lebih mendalam, anda akan mendapati bahawa arahan git<pathspec></pathspec> Lebih kuat daripada yang anda fikirkan.

<pathspec></pathspec> Ia adalah satu mekanisme yang digunakan oleh Git untuk mengehadkan skop perintah Git, yang mengehadkan skop pelaksanaan perintah ke subset repositori. Walaupun anda tidak menyedarinya, anda mungkin sudah menggunakannya<pathspec></pathspec> Sekarang. Sebagai contoh, dalam perintah git add README.md ,<pathspec></pathspec> Ia README.md . tetapi<pathspec></pathspec> Keupayaan untuk mencapai operasi yang lebih halus dan fleksibel.

kajian<pathspec></pathspec> Kelebihannya adalah dengan ketara meningkatkan fungsi perintah banyak git. Sebagai contoh, dengan git add anda hanya boleh menambah fail dalam satu direktori; Dengan git diff anda boleh menyemak perubahan yang dibuat untuk memfailkan nama dengan hanya lanjutan .scss ; Anda juga boleh menggunakan git grep untuk mencari semua fail, tetapi tidak termasuk fail dalam direktori /dist .

juga,<pathspec></pathspec> Membantu menulis lebih banyak alias git umum. Sebagai contoh, saya mempunyai alias yang dipanggil git todo yang akan mencari rentetan "todo" dalam semua fail repositori saya. Walau bagaimanapun, saya mahu ia memaparkan semua contoh rentetan, walaupun mereka tidak berada dalam direktori kerja semasa saya. gunakan<pathspec></pathspec> , Kita boleh mencapai ini.

Fail atau direktori

gunakan<pathspec></pathspec> Cara yang paling langsung ialah menggunakan direktori dan/atau nama fail. Sebagai contoh, menggunakan git add , anda boleh melakukan perkara berikut : . , src/ dan README adalah arahan untuk setiap arahan<pathspec></pathspec> .

 tambah git. # Tambahkan direktori kerja semasa (CWD)
git tambah src/ # tambah src/ direktori git tambah readme # tambah fail readme sahaja
Salin selepas log masuk

Anda juga boleh menambah beberapa arahan<pathspec></pathspec> :

 Git Tambah Src/ Server/ # Tambah Src/ dan Server/ Direktori
Salin selepas log masuk

Kadang -kadang, anda mungkin melihat arahan<pathspec></pathspec> Terdapat -- di hadapannya. Ini digunakan untuk menghapuskan<pathspec></pathspec> kekaburan antara bahagian lain perintah.

Kad liar

Sebagai tambahan kepada fail dan direktori, anda juga boleh menggunakan * , ? , dan [] untuk memadankan corak. Simbol * digunakan sebagai kad liar, dan ia akan dipadankan / di jalan - dengan kata lain, ia akan mencari subdirektori.

 git log '*.js' # Rakam semua .js fail dalam cwd dan subdirectory git log '.*' Rakam semua 'tersembunyi' fail dan direktori di cwd git log '*/.*'
Salin selepas log masuk

Petikan sangat penting, terutamanya apabila menggunakan * . Mereka menghalang cangkang anda (seperti Bash atau ZSH) daripada memanjangkan kad liar dengan sendirinya. Sebagai contoh, mari kita lihat bagaimana git ls-files menyenaraikan fail dengan dan tanpa petikan.

 # Sampel Struktur Direktori#
#.
# ├── Package-lock.json
# ├── Package.json
# └── Data
# ├── bar.json
# ├── baz.json
# └── Foo.json

git ls-files *.json

# pakej-lock.json
# pakej.json

git ls-files '*.json'

# data/bar.json
# data/baz.json
# data/foo.json
# pakej-lock.json
# pakej.json
Salin selepas log masuk

Oleh kerana shell meluas * dalam perintah pertama, arahan yang diterima oleh git ls-files adalah git ls-files package-lock.json package.json . Petikan Pastikan git adalah parti yang memanjangkan kad liar.

Anda juga boleh menggunakan ? watak sebagai kad liar untuk satu watak. Sebagai contoh, untuk memadankan fail MP3 atau MP4, anda boleh melakukan perkara berikut.

 git ls-files '*.mp?'
Salin selepas log masuk

Ekspresi pendakap persegi

Anda juga boleh menggunakan "ekspresi pendakap persegi" untuk memadankan aksara individu dalam koleksi. Sebagai contoh, jika anda ingin memadankan fail TypeScript atau JavaScript, anda boleh menggunakan [tj] . Ini akan sepadan dengan t atau j .

 git ls-files '*. [tj] s'
Salin selepas log masuk

Ini akan sepadan dengan fail .ts atau fail .js . Selain menggunakan aksara, anda juga boleh merujuk kepada set aksara tertentu dalam ekspresi pendakap persegi. Sebagai contoh, anda boleh menggunakan [:digit:] dalam ekspresi kurungan persegi untuk memadankan mana -mana nombor perpuluhan, atau gunakan [:space:] untuk memadankan mana -mana watak ruang.

 git ls-files '*.mp [[: digit:]]' # mp0, mp1, mp2, mp3, ..., mp9
git ls-files '*[[: ruang:]*' # sepadan dengan mana-mana laluan yang mengandungi ruang
Salin selepas log masuk

Untuk mengetahui lebih lanjut mengenai ekspresi kurungan persegi dan cara menggunakannya, lihat manual GNU.

Tandatangan sihir

<pathspec></pathspec> Juga mempunyai alat khas yang disebut "Signature Magic" yang boleh digunakan untuk anda<pathspec></pathspec> Buka kunci beberapa ciri tambahan. "Tandatangan sihir" ini diluluskan<pathspec></pathspec> Permulaan :(signature) dipanggil. Sekiranya anda tidak faham, jangan risau: Beberapa contoh harus membantu.

Atas

Tandatangan top memberitahu Git untuk memadankan corak dari akar repositori git dan bukannya direktori kerja semasa. Anda juga boleh menggunakan singkatan / bukan :(top) .

 git ls-files ': (atas)*. js'
git ls-files ':/*. JS' # singkatan
Salin selepas log masuk

Ini menyenaraikan semua fail dalam repositori dengan lanjutan .js . Gunakan tandatangan top , yang boleh dipanggil dalam mana -mana subdirektori di repositori. Saya dapati ini sangat berguna apabila menulis alias git generik!

 Git Config-Global aliass.js 'ls-files-': (atas)*. Js ''
Salin selepas log masuk

Anda boleh menggunakan git js untuk mendapatkan senarai semua fail JavaScript dalam projek anda di mana sahaja di repositori anda.

icase

Tandatangan icase memberitahu Git untuk mengabaikan kes apabila sepadan. Ini sangat berguna jika anda tidak peduli dengan kes nama fail - contohnya, ia sangat berguna untuk memadankan fail JPG, yang kadang -kadang menggunakan jpg lanjutan huruf besar.

 git ls-files ': (icase)*. jpg'
Salin selepas log masuk

harfiah

Tandatangan literal memberitahu Git untuk merawat semua watak secara harfiah. Pilihan ini boleh digunakan jika anda ingin merawat watak seperti * dan ? sebagai diri mereka sendiri daripada wildcards. Kecuali nama fail repositori anda mengandungi * atau ? , Saya tidak fikir tandatangan ini akan digunakan dengan kerap.

 log git ': (literal)*. js' # mengembalikan log fail '*.js'
Salin selepas log masuk

glob

Semasa saya mula belajar<pathspec></pathspec> Apabila saya perasan bahawa wildcards bekerja secara berbeza daripada yang biasa saya lakukan. Biasanya, saya melihat satu asterisk * sebagai kad liar yang tidak sepadan dengan apa -apa dalam direktori, sementara asterisk berterusan ( ** ) sebagai "deep" wildcard akan sepadan dengan nama dalam direktori. Jika anda lebih suka gaya liar ini, anda boleh menggunakan tandatangan Magic glob !

Ini sangat berguna jika anda ingin mempunyai lebih banyak kawalan berbutir ke atas bagaimana struktur direktori projek dicari. Sebagai contoh, mari kita lihat bagaimana kedua-dua git ls-files ini mencari projek React.

 git ls-files ': (glob) src/komponen/*/*. jsx' # "atas" komponen jsx git ls-files ': (glob) src/komponen/**/*. jsx' # "semua" komponen jsx
Salin selepas log masuk

attr

Git boleh menetapkan "Properties" untuk fail tertentu. Anda boleh menetapkan sifat -sifat ini menggunakan fail .gitattributes .

 <code># .gitattributes src/components/vendor/* vendored # 设置“vendored”属性src/styles/vendor/* vendored</code>
Salin selepas log masuk

Gunakan tandatangan sihir attr untuk anda<pathspec></pathspec> Tetapkan keperluan atribut. Sebagai contoh, kami mungkin mahu mengabaikan dokumen di atas dari vendor.

 git ls-files ': (attr :! vendored)*. js' # cari untuk fail js yang tidak vendored git ls-files ': (attr: vendored)*.
Salin selepas log masuk

tidak termasuk

Akhirnya, terdapat tandatangan sihir " exclude " (disingkat sebagai :! Atau :^ ). Tandatangan ini berfungsi secara berbeza daripada tandatangan sihir yang lain. Menyelesaikan semua yang lain<pathspec></pathspec> Selepas itu, semua tanda tangan exclude akan dihuraikan<pathspec></pathspec> , dan kemudian keluarkannya dari jalan yang dikembalikan. Sebagai contoh, anda boleh mencari semua fail .js semasa tidak termasuk fail ujian .spec.js .

 git grep 'foo' - '*.js' ': (tidak termasuk)*. spec.js' # cari fail .js, tidak termasuk .spec.js
git grep 'foo' - '*.js' ':!*. spec.js'. # Singkatan yang sama seperti di atas
Salin selepas log masuk

Tandatangan gabungan

Tidak ada yang dapat mengehadkan anda untuk satu<pathspec></pathspec> Gunakan tandatangan sihir berganda! Anda boleh menggunakan pelbagai tandatangan dengan memisahkan kata -kata sihir anda dengan koma dalam kurungan. Sebagai contoh, jika anda ingin memadankan dari bahagian bawah repositori (menggunakan top ), kes-insensitif (menggunakan icase ), hanya menggunakan kod yang ditulis (menggunakan attr untuk mengabaikan fail vendor), dan menggunakan Wildcards gaya GLOB (menggunakan glob ), anda boleh melakukan perkara berikut.

 git ls-files-': (atas, icase, glob, attr :! vendored) src/komponen/*/*. jsx'
Salin selepas log masuk

Kedua -dua tandatangan sihir yang anda tidak dapat menggabungkan adalah glob dan literal , kerana kedua -duanya mempengaruhi bagaimana git mengendalikan kad liar. Ini disebut dalam Glosari Git dan mungkin ayat kegemaran saya yang saya baca dalam mana -mana dokumen.

Glob Magic tidak serasi dengan sihir harfiah.

<pathspec></pathspec> Ia adalah bahagian penting dari banyak arahan Git, tetapi fleksibilitinya tidak dapat dilihat dengan segera. Dengan mempelajari cara menggunakan tanda liar dan tandatangan sihir, anda boleh menggandakan keupayaan anda pada baris arahan Git.

Atas ialah kandungan terperinci Pathspec git dan cara menggunakannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Ia &#039; s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Sedikit di CI/CD Sedikit di CI/CD Apr 02, 2025 pm 06:21 PM

Saya &#039;

Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Apr 02, 2025 pm 06:17 PM

Saya mempunyai seseorang yang menulis dengan soalan yang sangat legit ini. Lea hanya blog tentang bagaimana anda boleh mendapatkan sifat CSS yang sah dari penyemak imbas. That &#039; s seperti ini.

Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress Apr 02, 2025 am 04:27 AM

Jika kita perlu menunjukkan dokumentasi kepada pengguna secara langsung dalam editor WordPress, apakah cara terbaik untuk melakukannya?

Kad yang disusun dengan kedudukan melekit dan sasaran sass Kad yang disusun dengan kedudukan melekit dan sasaran sass Apr 03, 2025 am 10:30 AM

Pada hari yang lain, saya melihat sedikit ini sangat indah dari laman web Corey Ginnivan di mana koleksi kad timbunan di atas satu sama lain semasa anda menatal.

Membandingkan penyemak imbas untuk reka bentuk responsif Membandingkan penyemak imbas untuk reka bentuk responsif Apr 02, 2025 pm 06:25 PM

Terdapat beberapa aplikasi desktop ini di mana matlamat menunjukkan laman web anda pada dimensi yang berbeza pada masa yang sama. Oleh itu, anda boleh menulis

Cara menggunakan grid CSS untuk tajuk dan kaki melekit Cara menggunakan grid CSS untuk tajuk dan kaki melekit Apr 02, 2025 pm 06:29 PM

CSS Grid adalah koleksi sifat yang direka untuk menjadikan susun atur lebih mudah daripada yang pernah berlaku. Seperti apa -apa, ada sedikit keluk pembelajaran, tetapi grid adalah

Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

See all articles