OK, tôi nghĩ rằng đây là một kịch bản git đơn giản, tôi còn thiếu gì?
Tôi có một masterchi nhánh và một featurechi nhánh. Tôi làm một số công việc master, một số featurevà sau đó một số nữa master. Tôi kết thúc với một cái gì đó như thế này (thứ tự từ điển ngụ ý thứ tự cam kết):
A--B--C------F--G (master)
\
D--E (feature)
Tôi không có vấn đề gì để git push origin mastergiữ cho mastercập nhật từ xa , cũng như với git push origin feature(khi bật feature) để duy trì một bản sao lưu từ xa cho featurecông việc của tôi . Cho đến bây giờ, chúng tôi tốt.
Nhưng bây giờ tôi muốn nổi featureloạn trên đỉnh của các F--Gcam kết trên chủ, vì vậy tôi git checkout featurevà git rebase master. Vẫn tốt. Bây giờ chúng tôi có:
A--B--C------F--G (master)
\
D'--E' (feature)
Vấn đề: thời điểm tôi muốn sao lưu phần khởi động mới được featurephân nhánh git push origin feature, lực đẩy bị từ chối vì cây đã thay đổi do việc khởi động lại. Điều này chỉ có thể được giải quyết với git push --force origin feature.
Tôi ghét sử dụng --forcemà không chắc chắn tôi cần nó. Vì vậy, tôi cần nó? Liệu cuộc nổi loạn có nhất thiết ngụ ý rằng kế tiếp pushnên là ưu tiên --force?
Chi nhánh tính năng này không được chia sẻ với bất kỳ nhà phát triển khác, vì vậy tôi không có vấn đề de facto với việc đẩy mạnh vũ lực, tôi sẽ không để mất bất kỳ dữ liệu, câu hỏi là khái niệm hơn.