Lỗi lầm:
Tôi git rebase -i --root
là chi nhánh của mình, thờ ơ nghĩ rằng tôi có thể điều chỉnh lại cam kết đầu tiên khác với chủ ( chế độ xem mặc định của GitHub cho Windows là so sánh với chủ, ẩn toàn bộ).
Tôi đã mọc râu ở Thung lũng Silicon trong khi hơn 900 cam kết tự nạp vào Sublime. Thoát ra mà không có thay đổi, tôi sạc pin sau đó tiến hành cạo râu, vì tất cả hơn 900 cá nhân cam kết không bị từ chối - đặt lại thời gian cam kết của họ cho đến bây giờ.
Quyết tâm đánh bại Git và giữ nguyên thời gian ban đầu, tôi đã xóa kho lưu trữ cục bộ này và sao chép lại từ xa.
Bây giờ nó đã thêm lại một cam kết không cần thiết gần đây nhất đối với chủ tôi muốn xóa, vì vậy đã tiến hành như vậy.
Làm cạn kiệt các tùy chọn:
Tôi không muốn git revert
- nó sẽ tạo ra một cam kết bổ sung, giúp Git chiếm thế thượng phong.
git reset --hard HEAD
không làm gì cả, sau khi kiểm tra reflog
, cái cuối cùng và duy nhất HEAD
là bản sao - Git thắng.
Để có được SHA gần đây nhất, tôi đã kiểm tra kho lưu trữ từ xa trên github.com - thắng nhỏ.
Sau khi suy nghĩ git reset --hard <SHA>
đã hoạt động, tôi cập nhật một chi nhánh khác thành chủ và 1 ... 2 ... gặp sự cố! cam kết đã trở lại - Git thắng.
Kiểm tra lại để làm chủ, thời gian để thử git rebase -i <SHA>
, sau đó xóa dòng ... vô ích, buồn để nói. " Nếu bạn xóa một dòng ở đây, thì CAM KẾT SILL ĐƯỢC MẤT ". À ... phủ bóng lên tính năng mới troll n00b trong ghi chú phát hành 2.8.3 .
Giải pháp:
git rebase -i <SHA>
sau đó d, drop = remove commit
.
Để xác minh, tôi đã kiểm tra đến một chi nhánh khác và voila - không có cam kết ẩn để lấy / kéo từ chủ.
https://twitter.com/holman/status/706006896273063936
Chúc một ngày tốt lành.
cherry-pick
vàdelete
một cam kết duy nhất có thể xảy ra cách đây một thời gian.