Muhtemelen bu başladığında OP nerede olduğunu, belirli bir taahhütten başlayarak benim repo dosyalarda değişiklikleri gözden geçirmek için vimdiff ile git difftool kullanmama izin verecek basit bir şey arıyorum . Ben bulduğum cevaplar ile çok mutlu değildi, bu yüzden bu git inc remental rep orter (gitincrep) komut dosyası birlikte attı ve benim için yararlı oldu:
#!/usr/bin/env bash
STARTWITH="${1:-}"
shift 1
DFILES=( "$@" )
RunDiff()
{
GIT1=$1
GIT2=$2
shift 2
if [ "$(git diff $GIT1 $GIT2 "$@")" ]
then
git log ${GIT1}..${GIT2}
git difftool --tool=vimdiff $GIT1 $GIT2 "$@"
fi
}
OLDVERS=""
RUNDIFF=""
for NEWVERS in $(git log --format=format:%h --reverse)
do
if [ "$RUNDIFF" ]
then
RunDiff $OLDVERS $NEWVERS "${DFILES[@]}"
elif [ "$OLDVERS" ]
then
if [ "$NEWVERS" = "${STARTWITH:=${NEWVERS}}" ]
then
RUNDIFF=true
RunDiff $OLDVERS $NEWVERS "${DFILES[@]}"
fi
fi
OLDVERS=$NEWVERS
done
Args olmadan çağrıldığında, bu repo geçmişinin başından başlar, aksi takdirde sağladığınız kısaltılmış kesin karmasıyla başlar ve bugüne devam eder - çıkmak için istediğiniz zaman ctrl-C tuşlarına basabilirsiniz. İlkinden sonraki herhangi bir argüman fark raporlarını sadece bu argümanlar arasında listelenen dosyaları içerecek şekilde sınırlayacaktır (ki bu OP'nin istediği şeydir ve küçük projeler hariç tüm öneriler). Belirli dosyalarda yapılan değişiklikleri kontrol ediyorsanız ve baştan başlamak istiyorsanız, arg1 için boş bir dize sağlamanız gerekir. Bir vim kullanıcısı değilseniz, vimdiff'i en sevdiğiniz fark aracıyla değiştirebilirsiniz.
Davranış, ilgili değişiklikler bulunduğunda kaydedilen yorumları çıkarmak ve değiştirilen her dosya için vimdiff çalıştırmaları sunmaya başlamaktır (bu git difftool davranışıdır, ancak burada çalışır).
Bu yaklaşım muhtemelen oldukça naiftir, ancak burada ve ilgili bir postta birçok çözümden bakarken, birçoğu, kendi öğrenme eğrisine sahip arayüzlere sahip, yönetici erişimine sahip olmadığım bir sisteme yeni araçlar yüklemeyi içeriyordu. Yukarıdaki senaryo, herhangi biriyle uğraşmadan istediğimi yaptı. Daha sofistike bir şeye ihtiyacım olduğunda burada birçok mükemmel öneriye bakacağım - ancak bunun OP'ye doğrudan yanıt verdiğini düşünüyorum.