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:
.gitignoreile 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:
.gitignoredosyasına.envekleyin.- Eğer
.envdaha önce izlenmeye başlanmışsa,git rm --cached .envkomutunu ç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.
