Git – .gitignore Dosyası

8 Ocak 2020 tarihinde Emre Can ÖZTAŞ tarafından paylaşıldı.

Github üzerindeki dosyalarınızı kontrol ederken; yani üzerinde değişiklik yaparken bazı dosyaların değişikliğe uğramaması gerekebilir. Örneğin; bir takım olarak üzerinde çalıştığınız proje veya projelerde size ait olan config dosyalarının ana yapı üzerinde değişikliğe neden olmaması gerekir. Çünkü kendi bilgisayarınızda çalıştığınız ayarlar ile proje yapısı üzerindeki ayarlar çakışabilir. En basiti; ana proje üzerindeki veri tabanı ismi; a ise bilgisayarınızdaki veri tabanı ismi b olabilir. İşte bu ve buna benzer durumlarda; bazı dosyaların gönderilmemesi en doğru olanıdır.

config dosyaları dışında, örneğin; Node modülleri ile de çalışabilirsiniz. Ben genelde, front-end kısmında sıklıkla SCSS kullanıyorum. SCSS kullandığım için doğal olarak Gulp kullanıyorum. Mesela x bir proje için Node modüllerinin bendeki boyutu: 20.5 Mb. Bu dosyaların hepsini Git’e eklemenin hiç bir manası yok. Çünkü; package.json dosyasından yeniden proje yapısını kurabilirim. Dolayısıyla Node modüllerini yüklemem hamallık!

Şimdi gelelim .gitignore dosyasına. .gitignore dosyası, Git’e yüklenmeyecek olan dosyaların belirtildiği dosyadır. Her proje yapısında bir adet bulunur. Bu sayede, hangi dosyaların yüklenmeyeceğini belirtebiliriz.

.gitignore

Dosyanın tam adıdır. Bu dosyadan kök dizine oluşturmalısınız ve içerisinde yüklenmeyecek dosya veya dizin isimlerini yazmalısınız. Kök dizin derken .git dizinin bulunduğu dizine eklemelisiniz.

Çok basit bir .gitignore içeriği vererek yazımızı sonlandıralım.

./node_modules
*.log
*.lock
*.config

Yukarıdaki örnek dosya içeriğimizde; node_modules dışında, uzantısı: .log, .lock ve .config olan dosyaların Git’e gönderilmesini istemedik. Bu sayede ana proje yapımızı korumuş olduk.

Siz de Git ile çalışırken; istemediğiniz dosya ve dizinleri .gitignore dosyasında belirtebilir, bu sayede ana proje yapısını korumuş olursunuz.

 

Kategoriler: [Git] Etiketler: #.gitignore #git #github

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*
*

This site uses Akismet to reduce spam. Learn how your comment data is processed.