Git’te Bir Dosyadaki Değişiklikleri Nasıl Görmezden Gelirim?

Git, modern yazılım geliştirme süreçlerinde en çok kullanılan sürüm kontrol sistemlerinden biridir. Ancak, günlük çalışma akışlarında belirli dosyaların izlenmesini veya değişikliklerinin görmezden gelinmesini gerektiren durumlar ortaya çıkabilir. Örneğin, .env gibi yapılandırma dosyalarının sürüm kontrolüne dahil edilmesini istemeyebilirsiniz. Bu makalede, Git’te bir dosyadaki değişiklikleri nasıl görmezden geleceğinizi detaylı bir şekilde açıklıyoruz.

1. Git’te Dosyaları Görmezden Gelmenin Temelleri

Git’te bir dosyayı görmezden gelmek için genellikle .gitignore dosyasını kullanırız. Ancak, daha önce izlenmeye alınmış bir dosya .gitignore kullanılarak göz ardı edilemez. Bu yüzden dosyanın mevcut durumunu ya kaldırmanız ya da alternatif yöntemler kullanmanız gerekir.

İlk olarak, şu temel ayrımı yapmamız gerekiyor:

  • Henüz izlenmeyen dosyalar: .gitignore ile kolayca görmezden gelinir.
  • Halihazırda izlenmekte olan dosyalar: Özel komutlar ve yöntemlerle ele alınır.

2. .gitignore ile Dosyaları Görmezden Gelmek

Eğer bir dosya daha önce izlenmeye başlanmamışsa, aşağıdaki adımları takip ederek onu kolayca görmezden gelebilirsiniz:

Adım 1: .gitignore Dosyasını Düzenleyin

Proje dizininizde bir .gitignore dosyası oluşturun veya mevcut olanı düzenleyin. Görmezden gelmek istediğiniz dosyanın veya dosya deseninin adını buraya ekleyin:

# config dosyasını göz ardı et
config.json

# tüm log dosyalarını göz ardı et
*.log

# belirli bir klasörü göz ardı et
cache/

Adım 2: Git Değişikliklerini Güncelleyin

Değişiklikleri kaydetmek için aşağıdaki komutları çalıştırın:

git add .gitignore
git commit -m "Update .gitignore to ignore specific files"

Bu işlem, .gitignore‘a eklenen yeni dosyaların izlenmesini engeller. Ancak, zaten izlenmekte olan dosyaları etkileyemez.

3. İzlenmekte Olan Dosyaları Görmezden Gelmek

Eğer bir dosya daha önce git add komutuyla izlenmeye başlandıysa, onu görmezden gelmek için biraz daha fazla çaba harcamanız gerekir.

Adım 1: Dosyanın Geçmiş İzleme Bilgisini Kaldırın

Bir dosyayı Git deposundan kaldırmak ama fiziksel olarak dosyayı saklamak için aşağıdaki komutu kullanabilirsiniz:

git rm --cached dosya_adi

Bu komut, dosyayı Git’in izleme listesinde kaldırır ancak dosyayı diskten silmez.

Adım 2: .gitignore‘a Ekleyin

Bu adımdan sonra, kaldırdığınız dosyanın tekrar izlenmesini önlemek için .gitignore dosyasına bu dosyayı ekleyin.

Adım 3: Değişiklikleri Commit Edin

Yukarıdaki işlemleri tamamladıktan sonra aşağıdaki komutlarla değişikliklerinizi commit edin:

git add .
git commit -m "Stop tracking specific file"

4. Lokal Değişiklikleri Geçici Olarak Görmezden Gelmek

Eğer bir dosyada yapılan değişiklikleri yalnızca geçici olarak göz ardı etmek istiyorsanız, assume-unchanged veya skip-worktree bayraklarını kullanabilirsiniz. Bu yöntem, dosyanın lokal değişikliklerini görmezden gelir ancak diğer kullanıcıları veya depoyu etkilemez.

Adım 1: assume-unchanged Kullanımı

Bir dosyanın değişikliklerini geçici olarak yok saymak için şu komutu kullanabilirsiniz:

git update-index --assume-unchanged dosya_adi

Eğer dosyanın değişikliklerini tekrar takip etmek isterseniz, şu komutu kullanabilirsiniz:

git update-index --no-assume-unchanged dosya_adi

Adım 2: skip-worktree Kullanımı

Daha gelişmiş bir alternatif olarak skip-worktree bayrağı kullanılabilir:

git update-index --skip-worktree dosya_adi

Bu bayrağı kaldırmak için ise şu komut kullanılır:

git update-index --no-skip-worktree dosya_adi

Bu yöntem genellikle konfigürasyon dosyalarını kişisel olarak düzenlemek ama bu değişiklikleri depoya yansıtmamak için kullanılır.

5. Örnek Senaryolar

Senaryo 1: .env Dosyasını Görmezden Gelmek

Bir .env dosyasını görmezden gelmek için aşağıdaki adımları izleyin:

  1. .gitignore dosyasına .env ekleyin.
  2. Eğer .env daha önce izlenmeye başlanmışsa, git rm --cached .env komutunu çalıştırın.
  3. Değişiklikleri commit edin.

Senaryo 2: Lokalde Bir Dosyanın Değişikliklerini Yoksaymak

Eğer takımınızda ortak bir dosya olan config.json üzerinde lokal değişiklik yapmanız gerekiyorsa ama bu değişikliklerin commit edilmesini istemiyorsanız, skip-worktree kullanabilirsiniz:

git update-index --skip-worktree config.json

Sonuç

Git’te bir dosyadaki değişiklikleri görmezden gelmek, projeye ve kullanım durumuna bağlı olarak farklı yöntemler gerektirir. .gitignore, assume-unchanged ve skip-worktree gibi araçları doğru bir şekilde kullanarak çalışma akışınızı optimize edebilirsiniz. Yukarıdaki yöntemlerden hangisinin sizin durumunuza uygun olduğunu belirleyerek, dosya yönetimini daha verimli bir hale getirebilirsiniz.

Bu rehberdeki adımları takip ederek Git’teki dosya izleme ve görmezden gelme süreçlerini kolayca yönetebilirsiniz.