Kho Git của tôi có hai tệp, alpha
và beta
, với nội dung giống hệt nhau.Khôi phục Git sau khi hợp nhất nhầm lẫn với tệp đã xóa
Nếu tôi xóa alpha
trong nhánh chính của mình và chỉnh sửa nó trong nhánh tính năng của mình, khi tôi hợp nhất chính thành đối tượng địa lý, tôi được cảnh báo về xung đột. Giả sử tôi giải quyết vấn đề này bằng cách xóa alpha
.
Nếu tôi sau đó rebase chi nhánh tính năng của tôi vào chủ sử dụng git rebase master
, alpha
bị xóa, nhưng những thay đổi tôi thực hiện để alpha
trên chi nhánh tính năng hiện đang áp dụng cho beta
! Tôi nhận được cảnh báo xung đột nhưng nó được giải quyết một cách vui vẻ với tính năng tự động hợp nhất mà không có cam kết bị chặn để tôi xem xét.
Điều thú vị là nếu tôi thực hiện git rebase -i
và chỉ chấp nhận mặc định, beta
không được chỉnh sửa và tôi sẽ giải quyết cùng một xung đột mà tôi đã giải quyết tại thời điểm hợp nhất.
Ba câu hỏi có liên quan sau đó:
- Tại sao Git nghĩ sự thay đổi tôi áp dụng cho một tập tin nên được áp dụng khác, khi người kia đã không được chỉnh sửa bởi bất kỳ cam kết?
- Làm cách nào để tránh tình huống này?
- Tại sao hành vi khác nhau đối với một lần rebase tương tác, ngay cả khi tôi có các tùy chọn mặc định?
Tôi đang chạy Git 1.7.9 trên Cygwin trên Win7. Tôi đã đặt một số transcript on pastebin hiển thị số này bắt đầu bằng một số git init
trong một thư mục trống, nếu có ai muốn xem chi tiết cho chính mình (tôi không đăng nó ở đây do chiều dài).
một giải pháp có thể khác là chơi với tùy chọn 'đổi tên ngưỡng' của chiến lược 'đệ quy'. Đặt nó thành 'M100%', nên giải quyết vấn đề với dự đoán xấu. –
Cảm ơn @GabrielePetronella. Điều đó đã giải quyết nó cho tôi – thehouse