Git Eğitimi


Git ve {{title}}


Git Katkıda Bulun


Git Gelişmiş


Git Geri Al




Git Yoksay ve .gitignore


Git Yoksay

Kodunuzu başkalarıyla paylaşırken, genellikle projenizin paylaşmak istemediğiniz dosyaları veya bölümleri vardır.

Örnekler

  • log dosyaları
  • geçici dosyalar
  • gizlenmiş dosyalar
  • kişisel dosyalar
  • vb.

Git, bir dosya kullanarak projenizin hangi dosyalarının veya bölümlerinin Git tarafından yoksayılacağını belirleyebilir .gitignore.

Git, içinde belirtilen dosya ve klasörleri izlemez .gitignore. Ancak .gitignore dosyanın kendisi Git tarafından izlenir.


.gitignore oluştur

Bir .gitignoredosya oluşturmak için yerel Git'inizin köküne gidin ve onu oluşturun:

Örnek

touch .gitignore

Şimdi dosyayı bir metin düzenleyici kullanarak açın.

Sadece iki basit kural ekleyeceğiz:

  • .logUzantıya sahip tüm dosyaları yoksay
  • Adlandırılmış herhangi bir dizindeki her şeyi yoksay temp

Örnek

# ignore ALL .log files
*.log

# ignore ALL files in ANY directory named temp
temp/

Artık tüm .logdosyalar ve tempklasörlerdeki her şey Git tarafından yok sayılacak.

Not: Bu durumda, .gitignoretüm depo için geçerli olan bir single kullanıyoruz.

.gitignoreAlt dizinlerde ek dosyalar olması da mümkündür . Bunlar yalnızca o dizindeki dosyalar veya klasörler için geçerlidir.



.gitignore için kurallar

.gitignore Dosyalardaki  kalıpları eşleştirmek için genel kurallar şunlardır :

Pattern Explanation/Matches Examples
  Blank lines are ignored  
# text comment Lines starting with # are ignored  
name All name files, name folders, and files and folders in any name folder /name.log
/name/file.txt
/lib/name.log
name/ Ending with / specifies the pattern is for a folder. Matches all files and folders in any name folder /name/file.txt
/name/log/name.log

no match:
/name.log
name.file All files with the name.file /name.file
/lib/name.file
/name.file Starting with / specifies the pattern matches only files in the root folder /name.file

no match:
/lib/name.file
lib/name.file Patterns specifiing files in specific folders are always realative to root (even if you do not start with / ) /lib/name.file

no match:
name.file
/test/lib/name.file
**/lib/name.file Starting with ** before / specifies that it matches any folder in the repository. Not just on root. /lib/name.file
/test/lib/name.file
**/name All name folders, and files and folders in any name folder /name/log.file
/lib/name/log.file
/name/lib/log.file
/lib/**/name All name folders, and files and folders in any name folder within the lib folder. /lib/name/log.file
/lib/test/name/log.file
/lib/test/ver1/name/log.file

no match:
/name/log.file
*.file All files withe .file extention /name.file
/lib/name.file
*name/ All folders ending with name /lastname/log.file
/firstname/log.file
name?.file ? matches a single non-specific character /names.file
/name1.file

no match:
/names1.file
name[a-z].file [range] matches a single character in the specified range (in this case a character in the range of a-z, and also be numberic.) /names.file
/nameb.file

no match:
/name1.file
name[abc].file [set] matches a single character in the specified set of characters (in this case either a, b, or c) /namea.file
/nameb.file

no match:
/names.file
name[!abc].file [!set] matches a single character, except the ones spesified in the set of characters (in this case a, b, or c) /names.file
/namex.file

no match:
/namesb.file
*.file All files withe .file extention /name.file
/lib/name.file
name/
!name/secret.log
! specifies a negation or exception. Matches all files and folders in any name folder, except name/secret.log /name/file.txt
/name/log/name.log

no match:
/name/secret.log
*.file
!name.file
! specifies a negation or exception. All files withe .file extention, except name.file /log.file
/lastname.file

no match:
/name.file
*.file
!name/*.file
junk.*
Adding new patterns after a negation will re-ignore a previous negated file
All files withe .file extention, except the ones in name folder. Unless the file name is junk
/log.file
/name/log.file

no match:
/name/junk.file

Yerel ve Kişisel Git Yoksay Kuralları

.gitignoreDosyaları veya klasörleri yok saymak ancak dağıtılan dosyada göstermemek de mümkündür .

Bu tür yok saymalar .git/info/excludedosyada belirtilir. Aynı şekilde çalışır, .gitignoreancak başka kimseye gösterilmez.


Egzersizlerle Kendinizi Test Edin

Egzersiz yapmak:

Tüm dosyaları .gitignoreyoksaymak için bir satır ekleyin :.temp