Orijinal afişin belirtileri:
Birinin bana verebileceği en iyi cevap git revert
, istenen işleme ulaşana kadar X kez kullanmaktı .
Diyelim ki 20 taahhütlü bir taahhüdüne geri dönmek istiyorum, 20 kez çalıştırmak zorunda kalacağım.
Bunu yapmanın daha kolay bir yolu var mı?
Bu repo herkese açık olduğundan sıfırlama kullanamıyorum.
git revert
X kez kullanmak gerekli değildir . git revert
bir taahhüt aralığını argüman olarak kabul edebilir, bu nedenle bir dizi taahhüdü geri almak için yalnızca bir kez kullanmanız gerekir. Örneğin, son 20 işlemi geri almak istiyorsanız:
git revert --no-edit HEAD~20..
Aralık taahhüt HEAD~20..
kısaltması HEAD~20..HEAD
ve araçlar "20 başlatmak inci HEAD ebeveyn taahhüt ve ondan sonra yukarı HEAD tüm hareketin geri".
Bu, bunların hiçbirinin birleştirme taahhüdü olmadığını varsayarak , son 20 taahhüdü geri alacaktır . Birleştirme taahhütleri varsa, hepsini tek bir komutta geri alamazsınız, bunları tek tek geri almanız gerekir.
git revert -m 1 <merge-commit>
Ayrıca git revert
git sürüm 1.9.0 kullanarak bir aralık kullanarak test ettik unutmayın . Git'in eski bir sürümünü kullanıyorsanız,git revert
veya işe yarayabilir.
Bu durumda, git revert
tercih edilir git checkout
.
Kullanmayı söyleyen bu cevabıngit checkout
aksine , git revert
geri döndürdüğünüz taahhütlerin herhangi birine eklenen dosyaları gerçekten kaldıracağını unutmayın , bu da bunu bir dizi düzeltmeyi geri almak için doğru yol yapar.
belgeleme