Tôi đang sử dụng git-svn để làm việc với kho svn. Việc bố trí là tiêu chuẩn, và tôi đã tạo ra các kho lưu trữ địa phương với:Cách đồng bộ hóa các nhánh từ xa với thân cây bằng git-svn
$ git svn clone -s http://mysvnrepo
(master)$
tôi cần phải làm việc trên một xa (svn) chi nhánh - MyBranch, vì vậy tôi đã tạo ra một chi nhánh địa phương để theo dõi từ xa một:
(master)$ git checkout -b localMyBranch remotes/MyBranch
(localMyBranch)$
tôi tiếp tục làm việc và cam kết các chi nhánh địa phương như tôi đi, và thỉnh thoảng tôi dcommit:
(localMyBranch)$ git svn dcommit
người trong khi đó khác đang làm việc trên thân cây, và bất cứ lúc nào tôi muốn kết hợp lại những thay đổi từ thân cây đến nhánh của tôi để giữ chúng đồng bộ. Đó là nơi tôi thực sự bối rối, vì tôi không thể tìm thấy một thông tin tốt về cách thực hiện điều này. Cho đến nay tôi biết rằng tôi cần phải làm:
(localMyBranch)$ git svn dcommit
(localMyBranch)$ git checkout master
(master)$ git svn rebase
Bây giờ những gì? Tôi đọc rằng đây KHÔNG phải là cách đi đúng:
(master)$ git checkout localMyBranch
(localMyBranch)$ git rebase master
Vì nó sẽ làm hỏng thông tin hợp nhất cho svn.
Vậy cách tốt nhất để "rebase" nhánh svn từ xa của tôi vào thân cây từ xa, bảo toàn thông tin hợp nhất cho svn là gì?
Cảm ơn. Là nó sẽ bảo tồn thông tin hợp nhất từ svn POV? –
Có, nếu bạn cấu hình git để làm như vậy. Tôi sẽ chỉnh sửa câu trả lời để bao gồm các lệnh để làm như vậy. –
@ jordan002: Nó có thực sự hoạt động không? Tôi được sử dụng để làm như thế này [http://stackoverflow.com/a/4908930/158074) trả lời khuyến cáo, nhưng cách này có vẻ đơn giản hơn. Ngoài ra, dòng đầu tiên có thể là 'git checkout -b merge_work', phải không? – rsenna