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
Anda juga boleh menambah beberapa arahan<pathspec></pathspec>
:
Git Tambah Src/ Server/ # Tambah Src/ dan Server/ Direktori
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 '*/.*'
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
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?'
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'
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
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
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 ''
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'
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'
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
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>
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)*.
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
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'
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!

Untuk sementara waktu, iTunes adalah anjing besar dalam podcasting, jadi jika anda mengaitkan "Langgan Podcast" untuk suka:

Kami kehilangan opera ketika mereka pergi Chrome pada tahun 2013. Sama dengan Edge ketika ia juga menjadi Chrome awal tahun ini. Mike Taylor memanggil perubahan ini "menurun

Dari laman web Trashy Clickbait hingga paling banyak penerbitan, butang saham telah lama di mana -mana di seluruh web. Namun ia boleh dikatakan bahawa ini

Dalam roundup minggu ini, Apple masuk ke dalam komponen web, bagaimana Instagram adalah skrip insta-loading, dan beberapa makanan untuk difikirkan untuk sumber kritikal sendiri.

Apabila saya melihat melalui dokumentasi arahan git, saya perhatikan bahawa banyak daripada mereka mempunyai pilihan untuk. Saya pada mulanya berpendapat bahawa ini hanya

Bunyi seperti masalah yang sukar tidak? Kami sering tidak mempunyai tembakan produk dalam beribu -ribu warna, supaya kita dapat membalikkannya. Kami juga tidak

Saya suka apabila laman web mempunyai pilihan mod gelap. Mod gelap menjadikan laman web lebih mudah bagi saya untuk membaca dan membantu mata saya berasa lebih santai. Banyak laman web, termasuk

Ini saya melihat elemen HTML untuk kali pertama. Saya telah menyedarinya untuk seketika, tetapi Haven ' t mengambilnya untuk putaran lagi. Ia mempunyai cukup keren dan


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.