我有一个跟踪 svn 存储库的 git 存储库。我使用 --stdlayout
克隆了它。
我通过 git checkout -b foobar
创建了一个新的本地分支
现在我希望这个分支在 svn 存储库的 …/branches/foobar
中结束。
我该怎么做?
(截取了大量调查性文本。如果您愿意,请查看问题历史记录)
最佳答案
我知道这个问题已经回答了一段时间,但在阅读之后,我可能会帮助添加特定 git svn branch 命令的示例并将其与典型的工作流程相关联。
就像 kch 回答的那样,使用 git svn branch
。这是一个完整的示例,(注意用于空运行测试的 -n
):
git svn branch -n -m "Branch for authentication bug" auth_bug
如果一切顺利,服务器回复如下:
Copying https://scm-server.com/svn/portal/trunk at r8914 to https://scm-server.com/svn/portal/branches/auth_bug...
如果没有 -n
开关,服务器可能会添加如下内容:
Found possible branch point: https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug, 8914
Found branch parent: (refs/remotes/auth_bug)
d731b1fa028d30d685fe260f5bb912cbf59e1971
Following parent with do_switch
Successfully followed parent r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8
(refs/remotes/auth_bug)
最好的部分是,现在您可以像这样基于远程分支创建本地分支:
git checkout -b local/auth_bug auth_bug
这意味着“检查并创建名为 auth_bug
的本地分支,并使其跟随远程分支(最后一个参数)auth_bug
使用 dcommit
和 --dry-run
(-n
) 测试您的本地分支是否在该远程分支上工作:
git svn dcommit -n
SVN 服务器应该回复新的分支名称:
Committing to https://scm-server.com/svn/portal/branches/auth_bug ...
关于git-svn:如何通过 git 创建一个新的 svn 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/266395/