Git kullanımı sürecinde, loglar, geçici dosyalar, derlenmiş ara dosyalar gibi dosyaların kod deposuna gönderilmemesini seviyoruz, bu yüzden bu dosyaların commit edilmesini görmezden gelmek için uygun görmezden gelme kuralları belirlememiz gerekiyor.
Git, dosya commit'i yöntemini görmezden gelir
Git'te commit yapmak istemediğiniz dosyaları görmezden gelmenin üç yolu var.
Git projenizde .gitignore dosyasını tanımlayın
Bu, projedeki bir klasörde .gitignore dosyası tanımlanarak yönetilir ve ilgili görmezden gelme kuralları burada tanımlanırGüncel klasörDosyanın Git commit davranışı .gitignore dosyaları halka açık depolara gönderilebilir, bu da projedeki tüm geliştiricilerin tanımlanmış bir görmezden gelme kuralları setini paylaştığı anlamına gelir. .gitingore dosyasında, her satır için ilgili sözdizimi izleyerek bir görmezden gelme kuralı belirtin. Örneğin:
Git projesinin ayarlarında hariç dosyaları belirtin
Bu, projenin davranışının geçici bir belirtimidir ve mevcut proje altında .git/info/exclude dosyasının düzenlenmesini ve ardından commit dosyasının göz ardı edilmesi gerektiğini gerektirir. Bu şekilde belirtilen göz ardı edilen dosyaların kök dizini, proje kökü olduğunu unutmayın.
Git global tanımlayan .gitignore dosyası
Projenizde .gitignore dosyalarını tanımlamanın yanı sıra, tüm Git projelerinin davranışını yönetmek için küresel bir git .gitignore dosyası da kurabilirsiniz. Bu yaklaşım farklı proje geliştiricileri arasında paylaşılmaz; Git uygulama seviyesinde projenin üstünde uygulanan bir davranıştır.
Bu ayrıca herhangi bir yere yerleştirilebilen karşılık gelen bir .gitignore dosyası oluşturulmasını gerektirir. Sonra Git'i aşağıdaki komutla yapılandırın:
Git kuralları görmezden geliyor
Detaylı görmezden gelme kuralları için lütfen adresteki resmi İngilizce belgelere bakınız:Bağlantı girişi görünür.
Git kural önceliğini görmezden geliyor
.gitingore dosyasında, her satır için bir görmezden gelme kuralı belirtin ve Git, kuralları görmezden geldiğinde birden fazla kaynak olup olmadığını kontrol eder; aşağıdaki öncelikle (en yüksekten en düşükte) elde edilir:
- Mevcut görmezden gelme kurallarını komut satırından okuyun
- Mevcut dizin tarafından tanımlanan kurallar
- Ana dizin tarafından tanımlanan kurallar özyinelemelidir
- $GIT_DIR/info/exclude dosyası
- core.excludesfile
Git, kural eşleştirme sözdizimi görmezden geliyor
.gitignore dosyasında, her satır için ignore kuralı için sözdizimi şöyledir:
- Rastgele dosyalarla eşleşmeyen boşluklar ayırıcı olarak kullanılabilir ve arka eğik çizgilerle kaçış yapılabilir
- # Baştaki dosya tanımlama yorumu geri eğik çizgi kullanarak kaçar.
- ! Baştaki şema tanımı negatif ve dosya tekrar dahil edilecek, eğer dosyanın ana dizini hariç tutuluyorsa, ! Bir daha dahil edilmeyecek. Kaçış backslash ile yapılabilir
- / 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
- / 开始的模式匹配项目跟目录
- Bir desen eğik çizgi içermiyorsa, içeriği mevcut .gitignore dosya yoluna göre eşleştirir ve desen .gitignore dosyasında değilse, proje köküne göre eşleşir
- ** Eşleşen çok katmanlı kataloglar başta, ortada ve sonunda kullanılabilir
- ? Bireysel karakterlerin evrensel eşleşmesi
- [ ] Bireysel karakterlerin evrensel eşleşme listesi
Yaygın eşleştirme örnekleri:
- bin/: mevcut yol altındaki bin klasörünü görmezden gelir, o klasörün altındaki her şey göz ardı edilir, bin dosyası değil
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: Debug/io.obj görmezden gelin, debug/common/io.obj ve tools/debug/io.obj
- **/foo: /foo, a/foo, a/b/foo vb. görmezden gelin
- a/**/b: a/b, a/x/b, a/x/y/b vb. görmezden gelmek
- !/bin/run.sh: Bin dizinindeki run.sh dosyaları görmezden gelmeyin
- *.log: Tüm .log dosyalarını görmezden gelin
- config.php: 忽略当前路径的 config.php 文件
.gitignore kuralı etkilenmiyor
.gitignore yalnızca orijinal olarak takip edilmeyen dosyaları görmezden gelebilir ve bazı dosyalar sürüm düzenlemesine zaten dahil edildiyse .gitignore değiştirilebilir ve etkisiz olur.
Çözüm yolu, yerel önbelleği silmek, takip edilmemiş duruma dönüştürmek, önce commit yapmak:
(Son)
|