Git đang cảnh báo rằng bạn có thể mất lịch sử bằng cách xóa chi nhánh này. Mặc dù nó sẽ không thực sự xóa bất kỳ cam kết nào ngay lập tức, một số hoặc tất cả các cam kết trên chi nhánh sẽ không thể truy cập được nếu chúng không phải là một phần của một số chi nhánh khác.
Để chi nhánh experiment
được sáp nhập hoàn toàn vào một chi nhánh khác, cam kết tiền tip của nó phải là tổ tiên của đầu chi nhánh khác, thực hiện các cam kết trong experiment
một tập hợp con của chi nhánh khác. Điều này làm cho nó an toàn để xóa experiment
, vì tất cả các cam kết của nó sẽ vẫn là một phần của lịch sử kho lưu trữ thông qua các chi nhánh khác. Nó phải được sáp nhập hoàn toàn, vì nó có thể đã được hợp nhất nhiều lần, nhưng bây giờ đã có các cam kết được thêm vào kể từ lần hợp nhất cuối cùng không có trong nhánh khác.
Git không kiểm tra tất cả các chi nhánh khác trong kho lưu trữ; chỉ hai:
- Chi nhánh hiện tại (CHÍNH)
- Nhánh ngược dòng, nếu có một
Có thể là chi nhánh thượng nguồn của người Viking experiment
, như trong trường hợp của bạn origin/experiment
. Nếu experiment
được hợp nhất hoàn toàn trong nhánh hiện tại, thì Git sẽ xóa nó mà không có khiếu nại. Nếu không, nhưng nó được hợp nhất hoàn toàn trong nhánh ngược dòng của nó, thì Git tiến hành một cảnh báo có vẻ như:
warning: deleting branch 'experiment' that has been merged
to 'refs/remotes/origin/experiment', but not yet merged to
HEAD.
Deleted branch experiment (was xxxxxxxx).
Trong đó xxxxxxxx
chỉ ra một id cam kết. Việc được hợp nhất hoàn toàn ở thượng nguồn cho thấy rằng các cam kết experiment
đã được đẩy vào kho lưu trữ gốc, do đó ngay cả khi bạn mất chúng ở đây, ít nhất chúng có thể được lưu ở nơi khác.
Vì Git không kiểm tra các chi nhánh khác, nên có thể an toàn để xóa một chi nhánh vì bạn biết rằng nó được hợp nhất hoàn toàn vào một chi nhánh khác; bạn có thể thực hiện việc này với -D
tùy chọn như được chỉ định hoặc chuyển sang chi nhánh đó trước và để Git xác nhận trạng thái hợp nhất hoàn toàn cho bạn.