簡體   English   中英

在git-svn中,如何更改git分支正在跟蹤的svn分支?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM