Nhưng việc chọn tùy chọn này dường như không có tác dụng gì.
Có, bởi vì những thay đổi hiện tại là một trong những nhánh hiện tại dev
.
Rebasing dev
trên đầu trang dev
có nghĩa là không có.
git checkout dev
git rebase master
Điều đó có nghĩa là: nhánh hiện tại là dev
: được giảm giá trên đầu trang master
.
Vì vậy, trong SourceTree, bạn cần phải nhấp chuột phải vào master
(trong khi dev
được kiểm tra) và chọn:
Rebase current changes onto master
Howe cho biết thêm trong các bình luận :
Tên hiện tại của " rebase current changes onto [branch]
" gây hiểu lầm. Kiểm tra thảo luận cải tiếnSRCTREE-1578
này .
Sau khi nhận ra rằng bản thân gặp khó khăn khi cố gắng cập nhật một nhánh tính năng và không phát triển được, tôi nhận ra rằng mục menu ngữ cảnh bên trái có nhãn “ rebase current changes onto $somebranch
” thực sự làm ngược lại với những gì tên của nó gợi ý:
nó phục hồi nhánh hiện tại đến trạng thái $ somebranch;
Nói cách khác, nó phục hồi $somebranch
vào (hoặc vào) nhánh hiện tại, chứ không phải ngược lại. (Đúng?)
Giới từ “ onto
” trong văn bản hiện tại bị hiểu sai; nó ngụ ý rằng đối tượng của câu ( $somebranch
trong ví dụ của tôi) sẽ nhận được những thay đổi.
Trong thực tế, nó là ngược lại sẽ xảy ra.
Sự vắng mặt của tên chi nhánh hiện tại làm tăng thêm sự nhầm lẫn.
Một cách diễn đạt lại để cải thiện cấu trúc câu và bao gồm tên của nhánh bị ảnh hưởng sẽ mang lại một chiến thắng lớn cho sự rõ ràng.
Ví dụ:
rebase $currentbranch to head of $somebranch
rebase $somebranch onto $currentbranch