.gitignore Dosyası Nedir ve Nasıl Kullanılır?

.gitignore dosyası, Git sürüm kontrolü sistemi ile çalışan yazılım geliştiricilerinin en sık kullandığı dosyalardan biridir. Git, projedeki tüm dosya değişikliklerini izler, ancak bazı dosyaların sürüm takibine dahil edilmemesi gerekebilir. İşte tam burada devreye .gitignore dosyası girer. Bu yazıda, .gitignore dosyasının ne olduğunu, nasıl oluşturulup kullanılacağını detaylı bir şekilde ele alacağız.

.gitignore Dosyası Nedir?

.gitignore, bir Git deposu içinde takip edilmemesi gereken dosya ve dizinleri belirtmek için kullanılan bir dosyadır. Bu dosya, Git’e hangi dosyaların izlenmemesi gerektiğini belirtir. Git, varsayılan olarak projedeki tüm dosyaları izler. Ancak bazı dosyaların, özellikle geçici dosyaların, yapı dosyalarının veya kişisel ayar dosyalarının sürüm kontrolüne dahil edilmemesi gerekir. Bu gibi dosyaları .gitignore dosyasına ekleyerek Git’in bunları yok saymasını sağlayabilirsiniz.

.gitignore Dosyası Nerede Bulunur?

.gitignore dosyası genellikle bir Git projesinin kök dizininde bulunur. Ancak projede birden fazla .gitignore dosyası bulunabilir. Alt dizinlerde de ayrı .gitignore dosyaları ekleyebilirsiniz. Bu durumda, üst dizindeki .gitignore dosyasındaki kurallar geçerli olur, ancak alt dizindeki .gitignore dosyasındaki kurallar da belirli dosya ve dizinleri hedef alabilir.

.gitignore Dosyasını Nasıl Oluştururum?

.gitignore dosyasını oluşturmak oldukça basittir. Aşağıdaki adımları takip ederek bir .gitignore dosyası oluşturabilirsiniz:

  1. Adım 1: Projenizin kök dizininde bir metin dosyası oluşturun ve dosyanın adını .gitignore olarak belirleyin.
  2. Adım 2: Bu dosyaya, sürüm kontrolüne dahil edilmemesi gereken dosya ve dizinleri yazın. Örneğin, *.log ile log dosyalarını, node_modules/ ile Node.js modüllerini hariç tutabilirsiniz.
  3. Adım 3: Dosyayı kaydedin ve projenizdeki Git deposuna ekleyin.

Bir örnek .gitignore dosyası şu şekilde olabilir:


# Node.js modülleri
node_modules/

# Geçici dosyalar
*.log
*.tmp

# IDE dosyaları
.vscode/
.idea/

# Derleme dosyaları
dist/
build/

.gitignore Dosyasında Kullanılabilecek Yönergeler

.gitignore dosyasında belirli kurallar ve yönergeler kullanılır. Bu kurallar, hangi dosyaların yok sayılacağını belirtmek için gereklidir. İşte .gitignore dosyasındaki en yaygın yönergeler:

1. Yıldız (*) Karakteri

Yıldız (*) karakteri, herhangi bir karakter veya karakter dizisini temsil eder. Örneğin, *.log ifadesi, tüm .log uzantılı dosyaları hedef alır.

2. Yorum Satırları

Bir satırın başına # ekleyerek o satırı yorum haline getirebilirsiniz. Yorumlar, .gitignore dosyasının ne işe yaradığını açıklamak için kullanılır.


# Bu satırdaki dosyalar yok sayılacak
*.bak

3. Özel Dosya ve Dizinler

Bir dosya ya da dizini yok saymak için dosya/dizin ismi yazılabilir. Örneğin, config/ dizini ile yalnızca config adlı dizin hariç tutulur. Bir dosya hariç tutulacaksa, dosyanın tam adı yazılmalıdır. Örneğin, secret.txt.

4. Dizin ve Dosya Deseni

Bir dizini yok saymak için sonunda / kullanılır. Örneğin, logs/ tüm logs dizinlerini hariç tutar. Aynı şekilde, *.log tüm .log uzantılı dosyaları hariç tutacaktır.

.gitignore Dosyasının Faydaları

.gitignore dosyasının kullanımının birkaç önemli avantajı vardır:

  • Depo Temizliği: Sadece gerekli dosyaların sürüm kontrolüne dahil edilmesini sağlar, gereksiz dosyaların repoya eklenmesini engeller.
  • Gizliliği Artırır: Kişisel bilgiler içeren veya gizli olan dosyaların yanlışlıkla paylaşılmasını engeller.
  • Yönetimi Kolaylaştırır: Geçici dosyaların ve geçici derleme dosyalarının yönetimi daha kolay hale gelir, proje dosyalarındaki karmaşıklık azalır.

Örnek .gitignore Dosyası

Git projelerinde kullanılan bazı yaygın .gitignore dosyaları örneklerine bakalım. Örneğin, Node.js projelerinde genellikle aşağıdaki gibi bir .gitignore dosyası kullanılır:


# Node.js için .gitignore örneği

# node_modules klasörünü hariç tut
node_modules/

# Geçici dosyalar
npm-debug.log
yarn-error.log

# Build dosyaları
dist/
build/

# Kişisel ayarlar
.vscode/
.idea/

Benzer şekilde, bir Python projesi için de .gitignore dosyası şu şekilde olabilir:


# Python için .gitignore örneği

# Python bytecode dosyalarını hariç tut
__pycache__/

# Sanal ortam dosyalarını hariç tut
venv/
env/

# IDE dosyaları
.vscode/
.idea/

.gitignore Dosyası İle İlgili Sıkça Sorulan Sorular (SSS)

1. .gitignore Dosyasını Nasıl Güncellerim?

.gitignore dosyasını güncellemek için, dosyayı bir metin düzenleyici ile açın ve gerekli dosya veya dizinleri ekleyin. Ancak, daha önce Git tarafından izlenen dosyaları .gitignore’a eklemek, bu dosyaların Git’in sürüm takibinden çıkmasını sağlamaz. Bu dosyaları git rm --cached komutuyla izlemeyi sonlandırabilirsiniz.

2. .gitignore Dosyasına Eklediğim Dosya Git Tarafından Takip Edilmeye Devam Ederse Ne Yapmalıyım?

Git, .gitignore dosyasına eklenen dosyaları izlemeye devam ediyorsa, bu dosyaların önce Git deposundan kaldırılması gerekir. Bunu git rm --cached [dosya_adı] komutuyla yapabilirsiniz. Bu komut, dosyayı sadece Git’ten çıkarır, diskten silmez.

3. Birden Fazla .gitignore Dosyası Kullanabilir Miyim?

Evet, bir projede birden fazla .gitignore dosyası kullanabilirsiniz. Alt dizinler için farklı .gitignore dosyaları tanımlayarak her bir dizinin içinde hangi dosyaların hariç tutulacağını belirleyebilirsiniz.

Sonuç

.gitignore dosyası, Git kullanıcıları için oldukça önemli bir araçtır. Gereksiz dosyaların sürüm kontrolüne dahil edilmesini engelleyerek, projelerinizi temiz tutmanızı sağlar. İyi bir .gitignore dosyası, sadece projenizin düzgün bir şekilde çalışmasını sağlamakla kalmaz, aynı zamanda gizlilik ve güvenlik açısından da önemli bir rol oynar. Bu yazıda öğrendiklerinizi kullanarak, projeniz için uygun bir .gitignore dosyası oluşturabilirsiniz.