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. ( -mEski 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-leaseHerhangi 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 --forcebunu 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-leasebiraz daha güvenlidir.