git diff`in aradaki diğer komutları hariç tutarak yalnızca iki komut arasındaki farkı göstermesini nasıl sağlarsınız?
İki komut arasındaki farkı, aradaki komutları dahil etmeden sormak çok az anlam ifade eder. Komutlar deponun içeriğinin anlık görüntüleridir; ikisi arasındaki farkı sormak mutlaka onları da içerir. O halde soru şu: Gerçekten ne arıyorsunuz?
William'ın önerdiği gibi, kiraz toplama size tek bir işlemin deltasını diğerinin üzerine yeniden yerleştirilmiş olarak verebilir. Yani:
$ git checkout 012345
$ git cherry-pick -n abcdef
$ git diff --cached
Bu, 'abcdef' commit'ini alır, onu en yakın atasıyla karşılaştırır, ardından '012345' üzerine bu farkı uygular. Bu yeni fark daha sonra gösterilir - tek değişiklik bağlamın 'abcdef'in hemen atası yerine '012345'ten gelmesidir. Tabii ki, çakışmalar vb. olabilir, bu nedenle çoğu durumda çok kullanışlı bir işlem değildir.
Eğer sadece abcdef'in kendisi ile ilgileniyorsanız, bunu yapabilirsiniz:
$ git log -u -1 abcdef
Bu, abcdef'i tek başına en yakın atasıyla karşılaştırır ve genellikle istediğiniz şeydir.
Ve tabii ki
$ git diff 012345..abcdef
size bu iki işlem arasındaki tüm farkları verir.
Ne elde etmeye çalıştığınız hakkında daha iyi bir fikir edinmek yardımcı olacaktır - bahsettiğim gibi, arada ne olduğu olmadan iki komut arasındaki farkı sormak aslında mantıklı değil.