Brezplačni e-vodič: Kako postati programer?
Poglej več
Odličen uvod v programiranje: SPOMLADANSKI TEDEN PROGRAMIRANJA ZA 99 EUR!
Na tečaj

HOW-TO: Ignoriranje datotek z .gitignore

Če ste že objavili kakšen projekt na Githubu, ste po vsej verjetnosti kdaj opazili v svojemu repositoryju datoteke, ki jih vi niste naredili oz. jih sploh niste videli pri sebi na računalniku. To so ponavadi neke začasne datoteke, ki so za delovanje programa v osnovi nepomembne, in jih generira programski jezik sam, ali pa vaš urejevalnik kode.

Na sliki je primer enega izmed mojih projektov na GitHubu pri kateremu sem uporabil Google App Engine (Python) ter urejevalnik kode PyCharm, ki sta mi pri tem generirala začasne datoteke, formata .pyc, ter mapo .idea. Format datotek oz. končnica se razlikuje glede na projekt, na uporabljen IDE in programski jezik.

Smartninja_sola_programiranja_tecaji_vLY7Pah

Ker so vse te datoteke in mapa totalno nepotrebni, jih bom odstranil tako, da se mi tudi v prihodnje ne bodo na novo ustvarile. Kako?


Ta projekt je bil nazadnje posodobljen pred 9 meseci (pravzaprav sem naredil samo en commit, ko je bil projekt že dokončan), zato sem si ga moral na novo klonirati na računalnik. Takoj sem opazil, da mi je zraven naložil še vse te nepotrebne datoteke. Lahko jih izbrišem in se jih tako znebim, ampak problem je, da bom pri naslednjem ‘git clone’ ali ‘git pull’ vse te datoteke dobil nazaj, ker se bodo vedno na novo generirale, tako da to ni dobra rešitev.

Smartninja_sola_programiranja_tecaji_

Prava rešitev je, da znotraj mape ustvarim ‘.gitignore’ datoteko. Pazite, da vam ne generira .txt datoteke ali kaj podobnega – datoteka sme biti imenovana samo ‘.gitignore‘ in nič drugega, drugače ne bo delovalo.

Smartninja_sola_programiranja_tecaji_rB8fMhf

Znotraj te datoteke lahko zapišemo specifične datoteke, ki jih hočemo ignorirati- torej v osnovi ‘ime_datoteke.format‘.
Lahko pa ignoriramo vse datoteke nekega podatkovnega formata- primer: *.format (zvezdica pomeni vse oz. vsa možna imena).

V tem primeru se hočem znebiti vseh .pyc datotek in specifično, cele mape .idea, zato bom zapisal v datoteko .gitignore takole:

Smartninja_sola_programiranja_tecaji_PF6ceLI

Shranim spremembe v datoteki in še preden naredim git push, v Terminalu zaženem ukaz git rm -r --cached ., ki bo resetiral ‘stanje’ datotek v mapi, kot da bi ustvarili čisto nov projekt – torej ne bo si zapomnil, da smo kadarkoli prej commitali te nepotrebne datoteke brez .gitignore-a.

Smartninja_sola_programiranja_tecaji_gn2twzy

Šele potem naredim vse te tipične git ukaze: add, commit in push.

Smartninja_sola_programiranja_tecaji_XYnW12y

In če zdaj pogledam na GitHubu svoj repository, bom opazil, da so vse deklarirane datoteke bile ignorirane in niso uploadane na GitHub.

Smartninja_sola_programiranja_tecaji_

Nadaljuj z branjem