[英]in git-svn, how do I change the svn branch that a git branch is tracking?
我正常的git-svn工作流程是在本地分支上完成工作,然后合並到master和git svn dcommit
,以將我的提交記錄到svn中繼上。
但是,在我當前的本地分支( foo
)中,我意識到這項工作將要進行一段時間,然后再將其提交到主干,並且在此之前可能還會有其他開發人員參與。 我想通過svn分支“支持”它,以便我的工作在服務器上。
我已經從當前主干創建了一個新的svn分支( svnFoo
),我基本上想“移動” foo
以便當我從它進行svn dcommit
,其所有提交都記錄在svnFoo
而不是trunk
。
做這個的最好方式是什么?
git rebase
是您的朋友在這里。 假設您是從本地master
分支創建的本地foo
分支,並且最近執行了git svn fetch
以便您的本地Git存儲庫了解遠程svnFoo
分支,那么您想要的魔術命令是:
git rebase --onto remotes/svnFoo $(git merge-base master foo) foo
這將找到您從master
分支foo
的提交,並從那里重播所有提交到svnFoo
分支頂部的foo
分支的頭部。 隨后的git svn dcommit
將提交到Subversion svnFoo
分支而不是主干。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.