Dalam proses menggunakan Git, kita ingin file seperti log, file sementara, file perantara yang dikompilasi, dll. tidak dikirimkan ke repositori kode, jadi kita perlu mengatur aturan abaikan yang sesuai untuk mengabaikan commit file ini.
Git mengabaikan metode penerapan file
Ada tiga cara untuk mengabaikan file yang tidak ingin Anda lakukan di Git.
Tentukan file .gitignore di proyek Git Anda
Ini dikelola dengan mendefinisikan file .gitignore dalam folder dalam proyek, di mana aturan abaikan yang sesuai ditentukanFolder saat iniPerilaku penerapan Git file di bawah File .gitignore dapat dikirimkan ke repositori publik, yang berarti bahwa semua developer di bawah project berbagi serangkaian aturan abaikan yang ditentukan. Dalam file .gitingore, tentukan aturan abaikan pada setiap baris, mengikuti sintaks yang sesuai. Sebagai contoh:
Tentukan file yang dikecualikan dalam pengaturan proyek Git
Ini hanyalah spesifikasi sementara dari perilaku proyek, yang mengharuskan pengeditan file .git/info/exclude di bawah proyek saat ini, dan kemudian menulis file yang komitnya perlu diabaikan. Perhatikan bahwa direktori root dari file yang diabaikan yang ditentukan dengan cara ini adalah root proyek.
File .gitignore yang mendefinisikan Git global
Selain dapat menentukan file .gitignore dalam proyek Anda, Anda juga dapat menyiapkan file git .gitignore global untuk mengelola perilaku semua proyek Git. Pendekatan ini tidak dibagikan antara pengembang proyek yang berbeda, dan merupakan perilaku di tingkat aplikasi Git di atas proyek.
Ini juga membutuhkan pembuatan file .gitignore yang sesuai, yang dapat ditempatkan di mana saja. Kemudian konfigurasikan Git dengan perintah berikut:
Git mengabaikan aturan
Untuk aturan pengabaian terperinci, silakan lihat dokumentasi bahasa Inggris resmi di alamat:Login hyperlink terlihat.
Git mengabaikan prioritas aturan
Dalam file .gitingore, tentukan aturan abaikan untuk setiap baris, dan Git memeriksa beberapa sumber saat mengabaikan aturan, dengan prioritas berikut (dari tertinggi ke terendah):
- Baca aturan abaikan yang tersedia dari baris perintah
- Aturan yang ditentukan oleh direktori saat ini
- Aturan yang ditentukan oleh direktori induk bersifat rekursif
- $GIT_DIR/info/mengecualikan file
- core.excludesfile
Git mengabaikan sintaks pencocokan aturan
Dalam file .gitignore, sintaks untuk aturan abaikan untuk setiap baris adalah sebagai berikut:
- Spasi yang tidak cocok dengan file arbitrer dapat digunakan sebagai pemisah dan dapat diloloskan dengan garis miring terbalik
- # Komentar identifikasi file di awal dapat diloloskan menggunakan garis miring terbalik
- ! Identifikasi skema di awal adalah negatif, dan file akan disertakan lagi, jika direktori induk file dikecualikan, gunakan ! tidak akan disertakan lagi. Melarikan diri dapat dilakukan menggunakan garis miring terbalik
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Jika pola tidak berisi garis miring, pola tersebut cocok dengan konten relatif terhadap jalur file .gitignore saat ini, dan jika pola tersebut tidak ada dalam file .gitignore, relatif terhadap akar proyek
- ** Katalog multi-level yang cocok dapat digunakan di awal, tengah, dan akhir
- ? Pencocokan universal karakter individu
- [ ] Daftar kecocokan universal dari karakter individu
Contoh pencocokan umum:
- bin/: mengabaikan folder bin di bawah jalur saat ini, semua yang ada di bawah folder itu diabaikan, bukan file bin
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Abaikan debug/io.obj, jangan abaikan debug/common/io.obj dan tools/debug/io.obj
- **/foo: abaikan /foo, a/foo, a/b/foo, dll
- a/**/b: abaikan a/b, a/x/b, a/x/y/b, dll
- !/bin/run.sh: Jangan abaikan file run.sh di direktori bin
- *.log: Abaikan semua file .log
- config.php: 忽略当前路径的 config.php 文件
Aturan .gitignore tidak berlaku
.gitignore hanya dapat mengabaikan file yang tidak dilacak pada awalnya, dan memodifikasi .gitignore tidak efektif jika beberapa file telah disertakan dalam pembuatan versi.
Solusinya adalah menghapus cache lokal (mengubahnya ke status tidak terlacak) sebelum melakukan:
(Akhir)
|