Git ile düzenli olarak çalışan geliştiriciler için geçmişi değiştirmek çok yaygındır. Aslında geliştiricilerin genellikle Git geçmişinden taahhütleri kaldırması gerekir. Neyse ki Git bu işlemi mümkün kılmak için birçok komut sağlıyor.
Gelelim konuya 😎.
Git geçmişini değiştirmeden önce git status komutunu kullanarak çalışma dizininizin herhangi bir değişiklikten temiz olduğundan emin olun.
Uzak bir sunucudaki taahhütleri silmek için öncelikle bunları yerel geçmişinizden kaldırmanız gerekir.
Kaldırmak istediğiniz taahhütler taahhüt geçmişinizin en üstüne yerleştirilmişse, HEAD
nesnesi ve kaldırmak istediğiniz taahhütlerin sayısıyla birlikte git reset --hard
komutunu kullanın.
git reset --hard HEAD~1
Bu komut en son taahhüdü kaldıracaktır.
git reset --hard HEAD~3
Bu komut son üç işlemi kaldıracaktır.
Ayrıca, bir taahhüdün karmasını kullanarak belirli bir taahhüdü kaldırabilirsiniz:
git reset --hard <hash>
Ancak ardışık olmayan taahhütleri kaldırmak istiyorsanız etkileşimli bir yeniden taban kullanmanız gerekir.
git reflog
komutunu kullanarak kaldırmak istediğiniz tüm taahhütleri içeren son taahhüt karmasını bulun.git rebase -i <hash>
ile etkileşimli bir yeniden temel başlatın.git rebase --continue
ile sonlandırın veya rebase'i iptal ederek baştan başlayın.Taahhütleri uzaktan silmek için, yerel değişikliklerinizi git Push komutunu kullanarak uzaktan kumandaya aktarmanız gerekir.
git push origin HEAD --force
Yerel geçmişiniz uzak geçmişten farklı olduğu için force
seçeneğini kullanmanız gerekir.
Gördüğünüz gibi Git uzak bir sunucudaki taahhütlerin silinmesini kolaylaştırıyor.
Ancak git push
komutunu force
seçeneğiyle birlikte kullanırken dikkatli olmanız gerekir çünkü dikkatli olmazsanız ilerlemeyi kaybedebilirsiniz.
Okuduğunuz için teşekkürler!