Birçok kişi kullanmanızı önerir git update-index --assume-unchanged
. Gerçekten de, bu iyi bir çözüm olabilir, ancak sadece kısa vadede.
Ne muhtemelen yapmak istiyorum şudur: git update-index --skip-worktree
.
(Muhtemelen istemediğiniz üçüncü seçenek şudur: git rm --cached
Yerel dosyanızı koruyacaktır, ancak uzak depodan kaldırılmış olarak işaretlenecektir.)
İlk iki seçenek arasındaki fark nedir?
assume-unchanged
geçici olarak dosyadaki değişiklikleri gizlemenize izin vermektir. Bir dosyada yapılan değişiklikleri gizlemek, dosyayı değiştirmek, ardından başka bir şubeye göz atmak istiyorsanız, no-assume-unchanged
muhtemelen stash değişikliklerini yapmanız gerekir .
skip-worktree
Değişikliklerinizle hangi şubeyi kullanırsanız takip edeceksiniz!
Kullanım örneği assume-unchanged
Bu dosyanın değiştirilmemesi gerektiğini varsayar ve bunu yaparken daha temiz bir çıktı verir git status
. Ancak başka bir şubeye check-out yaparken, bayrağı sıfırlamanız ve daha önce değişiklikler yapmanız veya saklamanız gerekir. Bu seçenek etkinken çekerseniz, çakışmaları çözmeniz gerekir ve git otomatik olarak birleştirilmez. Aslında sadece değişiklikleri gizler ( git status
size işaretli dosyaları göstermez).
Ben sadece bir süre değişiklikleri izleme durdurmak istiyorum + aynı değişiklik git commit -a
ile ilgili bir grup dosya ( ) taahhüt etmek istiyorum .
Kullanım örneği skip-worktree
Arkadaşlarınızın kurulumlarına göre değiştirmek zorunda olduğu parametreleri (ör. Şifreler dahil) içeren bir kurulum sınıfınız var.
- 1: Bu sınıfın ilk sürümünü oluşturun, doldurabileceğiniz alanları doldurun ve diğerlerini boş / boş bırakın.
- 2: Tamamlayın ve uzak sunucuya itin.
- 3:
git update-index --skip-worktree MySetupClass.java
- 4: Yapılandırma sınıfınızı kendi parametrelerinizle güncelleyin.
- 5: Başka bir işlev üzerinde çalışmak için geri dönün.
Yaptığınız değişiklikler branştan bağımsız olarak sizi takip edecektir. Uyarı: Arkadaşlarınız da bu sınıfı değiştirmek istiyorsa, aynı düzene sahip olmaları gerekir, aksi takdirde değişiklikleri uzak depoya gönderilir. Çekerken, dosyanın uzak sürümü kendinizin üzerine yazmalıdır.
Not: birini ya da diğerini yapın, ancak her ikisi de değil, istenmeyen yan etkilere sahip olacaksınız. Başka bir bayrak denemek istiyorsanız, önce ikinci bayrağı devre dışı bırakmalısınız.
.csproj
dosyadaki değişiklikleri neden izlemek istemeyeceğinizi merak ediyorum , bu da herhangi bir projenin çok önemli bir parçası..csproj.user
Dosyada veya herhangi bir dosyada yapılan değişiklikleri.Publish.XML
tamamen izleyemediğimi anlayabiliyorum, ama neden izlemek istemeyeceğiniz konusunda.csproj