Nasıl yerel gıt benim repo değişiklikler varsa bir bash betiği kontrol edebilirim
Eğer bir değişiklik için kontrol ederlerse düzgün çalışmıyor bazı kodlar var.
Bu gibi çalıştım:
VN=$(git describe --abbrev=7 HEAD 2>/dev/null)
git update-index -q --refresh
CHANGED=$(git diff-index --name-only HEAD --)
if [ ! -z $CHANGED ];
then VN="$VN-mod"
fi
Var boolean bir çeşit son commit beri değişiklikler olmuştur olmadığını kontrol etmek, ya da gerçekten eğer benim yerel depo için yeni bir değişiklik olup olmadığını test edebilirim
Sürüm oluşturma komut dosyası burada bir yerde buldum () için bunu yapıyorum
CEVAP
Ne yaptığını neredeyse çalışır: herhangi bir değişiklik anlamına gelir boş boş ve -z
testler, diye. $CHANGED
anlatmalısın Ne demek istediğini:
if [ -n "$CHANGED" ]; then
VN="$VN-mod"
fi
Git bir alıntı GIT-VERSION-GEN
:
git update-index -q --refresh
test -z "$(git diff-index --name-only HEAD --)" ||
VN="$VN-dirty"
Bu kopyalama gibi görünüyor, ama sadece alıntı bu ayrıntıyı unutuyordum.
Tabii ki, aynı zamanda sadece bunu yapabilirsiniz:
if git diff-index --quiet HEAD --; then
# no changes
else
# changes
fi
ya eğer tek değer veriyorsan "bir şeyler değişti" dava:
if ! git diff-index --quiet HEAD --; then
VN="$VN-mod"
fi
--quiet
kullanarak gıt işleme tek bir fark bulduğu en kısa sürede durdurabilir, tüm iş ağacınızı kontrol yok yararı vardır.
Nasıl bir Java dosyası varsa kontrol e...
Nasıl benim komut dosyası çalıştıran n...
Nasıl bir değişkeni Python varsa kontr...
Nasıl dosya jQuery veya JavaScript var...
Nasıl eğer dizin varsa PHP ile kontrol...