Bir veya iki bilet üzerinde çalışırken, uzaklaşırsam, neyin üzerinde çalıştığımdan, neyin değiştiğinden vb. Emin değilim.
Git add ve sonra git kesinleştirmeden önce belirli bir dosya için yapılan değişiklikleri görmenin bir yolu var mı?
Bir veya iki bilet üzerinde çalışırken, uzaklaşırsam, neyin üzerinde çalıştığımdan, neyin değiştiğinden vb. Emin değilim.
Git add ve sonra git kesinleştirmeden önce belirli bir dosya için yapılan değişiklikleri görmenin bir yolu var mı?
Yanıtlar:
Arıyorsunuz git diff. Kesin durumunuza bağlı olarak, bunu kullanmanın üç yararlı yolu vardır:
# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]
Dizinlerde özyinelemeli olarak çalışır ve hiçbir yol belirtilmezse tüm değişiklikleri gösterir.
git add -ptüm dosyaları incelemek için bir alternatif.
git diff --staged [filename]daha sık ihtiyaç duyulan bir durum olduğundan ana cevabınızı eklemeyi düşünün .
Kullanım git-diff:
git diff yourfile
Benim git add -piçin en yararlı yol (ve git geliştiriciler tarafından düşünüyorum?) Tüm etiketsiz değişiklikleri gözden geçirmek (her dosya için fark gösterir), bir taahhüt ile gitmek gerekir iyi bir dizi değişiklikler seçin, sonra hepsini sahneye koyduktan sonra kullanın git commitve bir sonraki işlem için tekrarlayın. Daha sonra her bir taahhüdü çeşitli dosyalarda olsalar bile yararlı veya anlamlı bir değişiklik kümesi yapabilirsiniz. Ayrıca, her bilet veya benzer etkinlik için yeni bir şube oluşturmayı ve aralarında geçiş yapmayı checkout(belki de git stashgeçiş yapmadan önce taahhütte bulunmak istemiyorsanız kullanma) öneririm , ancak birçok hızlı değişiklik yapıyorsanız bu bir acı olabilir. Sık sık birleşmeyi unutmayın.
Çalışma ağacı ile dizin veya ağaç arasındaki değişiklikleri, dizin ile ağaç arasındaki değişiklikleri, iki ağaç arasındaki değişiklikleri veya diskteki iki dosya arasındaki değişiklikleri gösterir.
Unutmayın, değişiklik yapıyorsunuz , dosya değil.
Bu nedenle, git add -pdeğişikliklerimi eklemek için (veya magit eşdeğeri) kullanmam çok nadirdir .
git diff <path>/filename
yolu dosyaya kadar tam sistem yolu olabilir veya
projede iseniz değiştirilmiş dosya yolunu da
yol kullanımı ile değiştirilmiş dosyalar için yapıştırın :git status
Dosyam umurumda değil. Hepsini göster.
Zaten git adddosya listenizle çalıştığınızda:
$ git diff --cached $(git diff --cached --name-only)
'Nin daha yeni sürümlerinde gitde kullanabilirsiniz --staged.--cached .
Aynı şey dosya eklememiş ancak seçeneksiz olarak kullanılabilir --cached.
$ git diff $(git diff --name-only)
"Önbellek" seçeneği için Git komut diğer adı:
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
İlgili git deponuza gidin, ardından aşağıdaki komutu çalıştırın:
git diff dosya adı
Dosya, işaretli değişikliklerle açılır, dosyayı aşağı kaydırmak için dönüş / giriş tuşuna basın.
PS dosya adı dosyanın tam yolunu içermelidir, aksi takdirde dosyanın ilgili dizinine / klasörüne giderek tam dosya yolu olmadan çalıştırabilirsiniz
Git dostu bir metin düzenleyici de kullanabilirsiniz. Değiştirilmiş çizgiler üzerinde renkler, eklenen çizgiler için başka bir renk, silinmiş çizgiler için başka bir renk vb. Gösterir.
Bunu yapan iyi bir metin editörü GitHub'ın Atom 1.0'ıdır .
[filename]isteğe bağlı bir bağımsız değişkeni belirtir.)*Kabuğun tüm dosyaları listelemesine izin veriyorsanız, bir alt dizindeyseniz yalnızca bu alt dizinde (tüm repo değil) şeyler alırsınız ve ' gizli dosyalarda değişiklikleri özleyeceğim.