Tôi đang cố gắng xóa 2 lần commit cuối cùng trong một trong các kho lưu trữ GitHub của tôi. Tôi đã thử như đề xuất here: git push -f origin HEAD ^^: master. Dường như nó hoạt động, hai lần commit cuối cùng bị loại bỏ.Làm thế nào để xóa cam kết n cuối cùng trên Github và cục bộ?
Sau đó, tôi đã xóa chúng khỏi kho lưu trữ cục bộ của mình bằng lệnh git rebase -i HEAD ~ 2. Tôi loại bỏ các dòng hơn là có liên quan với những cam kết, và kiểm tra với git đăng nhập rằng chúng được gỡ bỏ một cách chính xác.
Sau đó tôi thực hiện một số thay đổi trong kho lưu trữ cục bộ của mình, thực hiện một cam kết mới và đẩy tới GitHub. Vấn đề là trong tài khoản GitHub của tôi, tôi có hai lần commit trước đó mà tôi đã cố xóa.
Tôi nghĩ rằng vấn đề nằm trong kho lưu trữ cục bộ của tôi vì nếu tôi sao chép kho lưu trữ Github của mình vào cục bộ của mình và thực hiện một số thay đổi tại đây khi tôi ấn một cam kết mới, những cam kết cũ đó không được đẩy lên GitHub.
Bất kỳ ý tưởng nào?
Nếu bạn đã đẩy thay đổi này vào một kho lưu trữ từ xa. Bạn có thể loại bỏ nó bằng git push -f –
Bạn có thể khái quát hóa điều này cho số lần commit cuối cùng không? –
@ user_19 bạn có thể làm những việc như 'git reset --hard HEAD^4' hoặc' git reset --hard HEAD ~ 4'. Mặc dù, mọi thứ có thể hơi phức tạp nếu lịch sử của bạn chứa các kết hợp. Bạn có thể tìm thêm thông tin về việc chỉ định các sửa đổi trong phần tương ứng [tại đây] (https://www.kernel.org/pub/software/scm/git/docs/git-rev-parse.html). –