Tôi đã có một kho lưu trữ Git với rất nhiều cam kết không thuộc chi nhánh cụ thể nào, tôi có thể thực hiện git show
chúng, nhưng khi tôi cố gắng liệt kê các nhánh có chứa chúng, nó không báo cáo gì cả.
Tôi nghĩ rằng đây là vấn đề cam kết / cây treo lủng lẳng (là kết quả của nhánh -D), vì vậy tôi đã cắt tỉa repo, nhưng tôi vẫn thấy hành vi tương tự sau đó:
$ git fetch origin
$ git fsck --unreachable
$ git fsck
Không có đầu ra, không có gì lơ lửng (phải không?). Nhưng cam kết tồn tại
$ git show 793db7f272ba4bbdd1e32f14410a52a412667042
commit 793db7f272ba4bbdd1e32f14410a52a412667042
Author: ...
và nó không thể truy cập thông qua bất kỳ chi nhánh như
$ git branch --contains 793db7f272ba4bbdd1e32f14410a52a412667042
không cho đầu ra.
Chính xác thì trạng thái của cam kết đó là gì? Làm thế nào tôi có thể liệt kê tất cả các cam kết trong một trạng thái tương tự? Làm thế nào tôi có thể xóa các cam kết như thế?