A git svn fetch
thêm một nhánh mới từ xa được gọi là điều khiển từ xa/git-svn (như có thể thấy với git branch -a
).
Nếu bạn thực hiện thay đổi đối với svn ngược dòng, sau đó chạy lại git fetch
, các thay đổi sẽ được kéo (trên thực tế, được tìm nạp) trong nhánh này, chứ không phải trên máy chủ. Vì vậy, để làm cho git log (và mọi thứ khác) làm việc ok trên nhánh master bạn chỉ cần hợp nhất, như bình thường bạn sẽ phải làm sau khi tìm nạp (đây là những gì git pull làm, tìm nạp và sau đó hợp nhất).
Vì git svn pull không hoạt động, bạn sẽ phải hợp nhất nó theo cách thủ công. Trong khi trên cành chủ, chạy:
git merge remotes/git-svn
này sẽ hợp nhất chi nhánh tổng thể của bạn với các chi nhánh git-svn, làm cho tất cả mọi thứ ok một lần nữa.
Vì vậy, trong tương lai, chạy
git svn fetch
git merge remotes/git-svn
và bạn sẽ được cập nhật với các kho thượng nguồn một lần nữa.
Đặt ref của đầu của chủ thành git-svn như đề xuất của vjangus cũng sẽ thực hiện công việc này, nhưng bạn không bao giờ nên thực hiện thay đổi trong nhánh từ xa.
Nguồn
2012-01-23 13:53:58
Bạn đã đúng. 'git log' tìm kiếm ref chính, đó là lý do tại sao nó làm việc trên 'git symbolic-ref refs/heads/master refs/remotes/git-svn'. Cảm ơn. – vjangus
Điều này cũng không hoạt động trong git 1.7.5.4 – MDCore