Git Tutoriaal


Git en {{title}}


Git Dra by


Git Gevorderd


Git Undo




Git Ignore en .gitignore


Git Ignoreer

Wanneer jy jou kode met ander deel, is daar dikwels lêers of dele van jou projek wat jy nie wil deel nie.

Voorbeelde

  • log lêers
  • tydelike lêers
  • verborge lêers
  • persoonlike lêers
  • ens.

Git kan spesifiseer watter lêers of dele van jou projek deur Git geïgnoreer moet word deur 'n .gitignorelêer te gebruik.

Git sal nie lêers en vouers wat in gespesifiseer is, opspoor nie .gitignore. Die .gitignore lêer self WORD egter deur Git opgespoor.


Skep .gitignore

Om 'n .gitignorelêer te skep, gaan na die wortel van jou plaaslike Git, en skep dit:

Voorbeeld

touch .gitignore

Maak nou die lêer oop met 'n teksredigeerder.

Ons gaan net twee eenvoudige reëls byvoeg:

  • Ignoreer enige lêers met die .loguitbreiding
  • Ignoreer alles in enige gids met die naam temp

Voorbeeld

# ignore ALL .log files
*.log

# ignore ALL files in ANY directory named temp
temp/

Nou sal alle .loglêers en enigiets in tempdopgehou deur Git geïgnoreer word.

Let wel: In hierdie geval gebruik ons ​​'n enkele .gitignorewat van toepassing is op die hele bewaarplek.

Dit is ook moontlik om addisionele .gitignorelêers in subgidse te hê. Dit is slegs van toepassing op lêers of vouers binne daardie gids.



Reëls vir .gitignore

Hier is die algemene reëls om patrone in .gitignore lêers te pas: 

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

Plaaslike en persoonlike Git Ignoreer reëls

Dit is ook moontlik om lêers of vouers te ignoreer, maar dit nie in die verspreide .gitignorelêer te wys nie.

Hierdie soort ignorerings word in die .git/info/excludelêer gespesifiseer. Dit werk op dieselfde manier as, .gitignoremaar word aan niemand anders gewys nie.


Toets jouself met oefeninge

Oefening:

Voeg ' n reël by om alle lêers .gitignorete ignoreer :.temp