Git ile dosya değişikliklerini yoksay
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git, projenizdeki her dosyayı izlememelidir. Geliştirme ortamınızdaki geçici dosyalar, test çıkışları ve günlükler, izlenmesi gerekmeyen dosyalara örnek olarak verilebilir.
Git'e projenizdeki hangi dosyaların izlenmeyeceğini bildirmek ve Git'in bu dosyalarda değişiklik bildirmemesini sağlamak için çeşitli mekanizmalar kullanabilirsiniz. Git'in izlemediği dosyalar için bir .gitignore
veya exclude
dosyası kullanabilirsiniz. Git'in izlediği dosyalar için Git'e bunları izlemeyi durdurmasını ve değişiklikleri yoksaymasını söyleyebilirsiniz.
Bu makalede şunları öğreneceksiniz:
- dosya kullanarak izlenmeyen dosyalardaki değişiklikleri yoksayın
.gitignore
. - dosya kullanarak izlenmeyen dosyalarda yapılan değişiklikleri yoksayın
exclude
. - Komutunu kullanarak bir dosyayı izlemeyi durdurun ve değişiklikleri yoksayın
git update-index
. - Komutunu kullanarak bir dosyayı izlemeyi durdurun ve değişiklikleri yoksayın
git rm
.
.gitignore dosyası kullanma
Bir .gitignore dosyası ekleyerek ve yapılandırarak Git'e projenizdeki belirli dosyaları izlememelerini söyleyebilirsiniz. Dosyadaki .gitignore
girdiler yalnızca izlenmeyen dosyalara uygulanır. Git'in izlenen dosyalara yapılan değişiklikleri raporlamasını engellemez. İzlenen dosyalar, kaydedilmiş ve son Git anlık görüntüsünde var olan dosyalardır.
Bir .gitignore
dosyadaki her satır, dosya yoluna göre bir dosya arama deseni .gitignore
belirtir. .gitignore söz dizimi esnektir ve ada, uzantıya ve yola göre tek veya birden çok dosya belirtmek için joker karakter kullanımını destekler. Git, hangi dosyaların yoksayileceğini belirlemek için arama desenlerini projenizdeki dosyalarla eşleştirir .gitignore
.
Genellikle projenizin kök klasörüne bir .gitignore
dosya eklersiniz. Ancak, git'e herhangi bir iç içe derinlikte bu klasör ve alt klasörleri içinde hangi dosyaların yoksayıldığını bildirmek için herhangi bir proje klasörüne dosya .gitignore
ekleyebilirsiniz. Birden çok .gitignore
dosya için, bir .gitignore
klasörün içinde bir dosyanın belirttiği dosya arama desenleri, bir dosyanın üst klasör içinde belirttiği desenlerden .gitignore
önceliklidir.
El ile bir .gitignore
dosya oluşturabilir ve dosya düzeni girdileri ekleyebilirsiniz. İsterseniz GitHub gitignore deposundan geliştirme ortamınız için bir .gitignore
şablon indirerek zaman kazanabilirsiniz. Dosya kullanmanın .gitignore
avantajlarından biri, değişiklikleri işleyip başkalarıyla paylaşabilmenizdir.
Not
Git deposu oluşturduğunuzda Visual Studio, Visual Studio geliştirme ortamı için otomatik olarak bir dosya oluşturur.gitignore
.
Visual Studio 2022, Çözüm Gezgini'daki Git menüsü, Git Değişiklikleri ve kısayol menüleri aracılığıyla bir Git sürüm denetimi deneyimi sağlar. Visual Studio 2019 sürüm 16.8, Takım Gezgini Git kullanıcı arabirimini de sunar. Daha fazla bilgi için Visual Studio 2019 - Takım Gezgini sekmesine bakın.
Git Değişiklikleri penceresinde, Git'in yoksaymasını istediğiniz değiştirilmiş herhangi bir dosyaya sağ tıklayın ve ardından Bu yerel öğeyi yoksay veya Bu uzantıyı yoksay'ı seçin. İzlenen dosyalar için bu menü seçenekleri yoktur.
Bu yerel öğeyi yoksay seçeneği dosyaya .gitignore
yeni bir girdi ekler ve seçili dosyayı değiştirilen dosyalar listesinden kaldırır.
Bu uzantıyı yoksay seçeneği dosyaya .gitignore
yeni bir girdi ekler ve değiştirilen dosyalar listesinden seçili dosyayla aynı uzantıya sahip tüm dosyaları kaldırır.
Her iki seçenek de deponuzun kök klasöründe yoksa bir .gitignore
dosya oluşturur ve buna bir girdi ekler.
Gitignore dosyasını düzenleme
Dosyadaki .gitignore
her girdi şunlardır: hangi dosyaların yoksayıldığını belirten bir dosya arama deseni, sayı işareti (#
ile başlayan bir açıklama) veya boş bir satır (okunabilirlik için). Söz .gitignore
dizimi esnektir ve ada, uzantıya ve yola göre tek veya birden çok dosya belirtmek için joker karakter kullanımını destekler. Dosya arama desenlerinin tüm yolları dosyaya .gitignore
göredir.
Yaygın dosya arama desenlerine bazı örnekler aşağıda verilmiştir:
# Ignore all files with the specified name.
# Scope is all repo folders.
config.json
# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json
# Add an exception to prevent ignoring a file with the specified name.
# Scope is all repo folders.
!package.json
# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile
# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile
# Ignore all files in the 'logs' subfolder.
/logs/
Bir .gitignore
dosyayı değiştirdiğiniz anda Git, yoksayılan dosyaların listesini güncelleştirir.
Not
Windows kullanıcıları, bir dosyada .gitignore
ters eğik çizgi (/
) kullanmak yerine yol ayırıcısı olarak eğik çizgi (\
) kullanmalıdır. Bir klasör belirtirken tüm kullanıcıların sondaki eğik çizgiyi eklemesi gerekir.
Genel bir .gitignore dosyası kullanma
Bir .gitignore
dosyayı, tüm yerel Git depolarına uygulanan genel yoksay dosyası olarak belirleyebilirsiniz. Bunu yapmak için komutunu aşağıdaki gibi kullanın git config
:
git config core.excludesfile <gitignore file path>
Genel .gitignore
dosya, Git'in derlenmiş ikili dosyalar gibi belirli dosya türlerini herhangi bir yerel depoda işlememesini sağlamaya yardımcı olur. Depoya özgü .gitignore
bir dosyadaki dosya arama desenleri, genel .gitignore
dosyadaki desenlere göre önceliklidir.
Dışlama dosyası kullanma
Yerel deponuzun klasöründeki .git/info/
dosyaya exclude
dosya arama desenleri için girdiler de ekleyebilirsiniz. Dosya, Git'e exclude
hangi izlenmeyen dosyaların yoksayılır olduğunu bildirir. Dosya arama desenleri için dosyayla .gitignore
aynı söz dizimini kullanır.
Bir exclude
dosyadaki girdiler yalnızca izlenmeyen dosyalara uygulanır. Git'in değişiklikleri zaten izlediği kaydedilmiş dosyalarda raporlamasını engellemez. Depo başına yalnızca bir exclude
dosya var.
Git dosyayı işlemediğinden veya göndermediğinden exclude
, başka birini etkilemeden yerel sisteminizdeki dosyaları yoksaymak için güvenli bir şekilde kullanabilirsiniz.
Değişiklikleri yoksaymak için git update-index kullanma
Bazen yerel bir depo dosyasını izlemeyi geçici olarak durdurmak ve Git'in dosyadaki değişiklikleri yoksaymasını sağlamak kullanışlı olabilir. Örneğin, değişikliklerinizi işleme riski olmadan geliştirme ortamınız için bir ayarlar dosyasını özelleştirmek isteyebilirsiniz. Bunu yapmak için komutunu şu bayrakla skip-worktree
çalıştırabilirsinizgit update-index
:
git update-index --skip-worktree <file path>
İzlemeye devam etmek için bayrağıyla git update-index
--no-skip-worktree
komutunu çalıştırın.
Alternatif olarak, bir dosyayı izlemeyi geçici olarak durdurabilir ve Git'in bayrağıyla komutunu kullanarak dosyadaki git update-index
değişiklikleri yoksaymasını assume-unchanged
sağlayabilirsiniz. Dosya içeriğini değiştiren bir Git pull
işlemi bayrağı geri döndürebileceğinden, bu seçenek bayraktan assume-unchanged
daha skip-worktree
az etkilidir.
git update-index --assume-unchanged <file path>
İzlemeye devam etmek için bayrağıyla git update-index
--no-assume-unchanged
komutunu çalıştırın.
Değişiklikleri yoksaymak için git rm kullanma
Bir .gitignore
veya exclude
dosyasındaki girdilerin Git'in zaten izlediği dosyalar üzerinde hiçbir etkisi yoktur. Git, daha önce işlediğiniz dosyaları izler. Git'in artık onu izlememesi için, ancak dosya sisteminden silmeden bir dosyayı Git anlık görüntüsünden kalıcı olarak kaldırmak için aşağıdaki komutları çalıştırın:
git rm --cached <file path>
git commit <some message>
Ardından, Git'in dosyada değişiklikleri raporlamasını önlemek için bir .gitignore
veya exclude
dosya girdisi kullanın.