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:
.gitignore
dosyasına.env
ekleyin.- Eğer
.env
daha önce izlenmeye başlanmışsa,git rm --cached .env
komutunu çalıştırın. - 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.