Tôi đang làm việc trên một dự án sử dụng subversion cho kho lưu trữ của họ. Bởi vì tôi cần phải thực hiện một số thay đổi mà không thể được gửi đến máy chủ svn, tôi bắt đầu sử dụng git svn
để tôi có thể thực hiện đăng ký cục bộ. Thiết lập của tôi trông giống như sau:`git svn rebase` vs` git rebase trunk`
Chi nhánh: thân cây (theo dõi svn trunk), chính (gần giống với svn) và chủ đề.
*------------------ trunk
\
*-----------*--------- master
\
*-------- topic
Workflow:
[on branch master]
$ git svn fetch
$ git svn rebase
$ git checkout -b topic
$ git rebase master
[hack hack hack]
$ git commit -a
[once upstream is ready for my changes]
$ git svn fetch
$ git checkout master
$ git svn rebase
$ git checkout topic
$ git rebase master
$ git svn dcommit
$ git checkout master
$ git svn rebase
$ git branch -d topic
Giả sử rằng không ai cam kết svn giữa git svn fetch
và git svn rebase
, là git svn rebase
chạy trên tổng thể về cơ bản giống như git rebase trunk
chạy trên bậc thầy?
Có quy trình làm việc hợp lý hơn để sử dụng không? Có vẻ như có rất nhiều chi nhánh đang thay đổi và việc khởi động lại đang diễn ra. Tôi hiểu rằng tôi muốn có thể làm lại công việc của mình trên đầu trang của bất cứ điều gì trong svn, nhưng có vẻ như tôi đang làm nhiều công việc sửa chữa hơn là cần thiết.
Lần đầu tiên: Vì vậy, tôi không cần phải 'git svn fetch' trước khi tôi' git svn rebase' ... Miễn là tôi đang ở trên 'master'. Nhưng nếu tôi đang ở trên 'chủ đề',' git svn fetch' sẽ cập nhật 'trunk', nhưng để lại' master' và 'topic' một mình. Tôi không bao giờ 'git svn rebase' nhánh chủ đề của tôi mặc dù, tôi chỉ' git rebase' nó. Thú vị khi biết. –
@SeanMcMillan "Miễn là tôi làm chủ": vâng, đó là ý tưởng. Và bạn thực hiện 'git checkout master' mỗi lần, như vậy ... – VonC
Ngày thứ hai: Theo tài liệu,' git svn dcommit' không có nhánh được chỉ định đẩy các commit trên HEAD hiện tại, không chỉ trên 'master'. Vì vậy, tôi cam kết với SVN * từ chi nhánh của tôi *, sau đó dựa vào một 'git svn rebase' trên' master' để mang lại các cam kết từ SVN. Tôi từ bỏ chi nhánh 'topic' sau khi tôi đã dè dặt. Đây không phải là kosher? –