Değişiklik geçmişi
En son taahhüt ise, bunu yapabilirsiniz:
git commit --amend
Bu, düzenleyiciyi son işleme mesajı ile birlikte getirir ve mesajı düzenlemenizi sağlar. ( -m
Eski mesajı silmek ve yeni bir mesaj kullanmak istiyorsanız kullanabilirsiniz.)
itme
Ve sonra ittiğinizde bunu yapın:
git push --force-with-lease <repository> <branch>
Veya "+" kullanabilirsiniz:
git push <repository> +<branch>
Veya şunları kullanabilirsiniz --force
:
git push --force <repository> <branch>
Bu komutları kullanırken dikkatli olun.
Birisi değişiklikleri aynı şubeye gönderdiyse, muhtemelen bu değişiklikleri yok etmek istemezsiniz. --force-with-lease
Herhangi memba değişikliği olduğu takdirde o (iptal çünkü seçenek, en güvenli olduğu
Şubeyi açıkça belirtmezseniz, Git varsayılan push ayarlarını kullanır. Varsayılan push ayarınız "eşleşiyorsa", aynı anda birkaç koldaki değişiklikleri yok edebilirsiniz.
Daha sonra çekme / getirme
Zaten çekmiş olan herkes şimdi bir hata mesajı alır ve aşağıdaki gibi bir şey yaparak güncellemeleri gerekir (kendinde herhangi bir değişiklik yapmadıkları varsayılarak):
git fetch origin
git reset --hard origin/master # Loses local commits
Kullanırken dikkatli olun reset --hard
. Şube üzerinde değişiklikleriniz varsa, bu değişiklikler imha edilir.
Geçmişi değiştirme hakkında bir not
Yok edilen veriler gerçekten sadece eski işlem mesajıdır, ancak --force
bunu bilmez ve diğer verileri de mutlu bir şekilde siler. Bu yüzden --force
"Verileri yok etmek istiyorum ve hangi verilerin yok edildiğinden eminim" diye düşünün . Ancak, yok edilen veriler işlendiğinde, çoğu zaman eski taahhütleri reflogdan kurtarabilirsiniz; veriler yok edilenler yerine aslında yetim kalır (yetim kalan taahhütler periyodik olarak silinmesine rağmen).
Verileri yok ettiğinizi düşünmüyorsanız, o zaman uzak durun --force
... kötü şeyler olabilir .
Bu yüzden --force-with-lease
biraz daha güvenlidir.