Answers:
我知道这个问题已经回答了一段时间,但是在阅读之后,我可能会帮助添加特定git svn branch命令的示例并将其与典型的工作流程相关联。
就像kch回答一样,请使用git svn branch
。这是一个完整的示例,(请注意要-n
进行空运行测试):
git svn branch -n -m "Branch for authentication bug" auth_bug
如果一切顺利,服务器将回答如下:
复制https://scm-server.com/svn/portal/trunk在r8914到https://scm-server.com/svn/portal/branches/auth_bug ...
如果没有-n
切换,服务器可能会添加以下内容:
发现可能的分支点:https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug,8914
找到分支父级:(refs / remotes / auth_bug)
d731b1fa028d30d685fe260f5bb912cbf59e1971
用do_switch跟随父对象
成功跟随父级r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8
(引用/远程/ auth_bug)
最好的部分是,现在您可以根据远程分支创建本地分支,如下所示:
git checkout -b local/auth_bug auth_bug
这意味着“签出并创建名为的本地分支auth_bug
,并使它跟随远程分支(最后一个参数)auth_bug
通过dcommit
与--dry-run
(-n
)一起使用,测试您的本地分支可以在该远程分支上工作:
git svn dcommit -n
SVN服务器应使用新的分支名称进行回复:
git co
为git checkout
使该示例适用于任何人
git-svn branch
命令中有一个棘手的部分-您必须在线才能以这种方式创建新分支。您可以离线执行以下操作:1. git checkout -b foobar
2. hack-hack-hack 3 git commit -m "Done foobar"
.。并在联机时通过执行1. git svn branch foobar
2. git branch --set-upstream foobar remotes/foobar
3.来推动此更改git svn dcommit
。
git checkout -b foobar-new remotes/foobar
。3. git checkout foobar
4. git rebase foobar-new
5.测试以确保分支现在提交到svn分支。git svn dcommit --dry-run
6.最后实际提交git svn dcommit
7.删除临时分支git branch -D foobar-new