git svn:如何通过git创建新的svn分支?
我有一个跟踪svn存储库的git存储库。我使用git svn:如何通过git创建新的svn分支?,git,version-control,git-svn,Git,Version Control,Git Svn,我有一个跟踪svn存储库的git存储库。我使用--stdlayout克隆了它 我通过git checkout-b foobar创建了一个新的本地分支机构 现在我希望这个分支在svn存储库中的../branchs/foobar中结束 我该怎么办 (截取了大量的调查文本。如果您愿意,请参阅问题历史记录)从git v1.6.1开始,git svn branch可用 从git文档: branch Create a branch in the SVN repository.
--stdlayout
克隆了它
我通过git checkout-b foobar创建了一个新的本地分支机构
现在我希望这个分支在svn存储库中的../branchs/foobar
中结束
我该怎么办
(截取了大量的调查文本。如果您愿意,请参阅问题历史记录)从git v1.6.1开始,
git svn branch
可用
从git文档:
branch
Create a branch in the SVN repository.
-m, --message
Allows to specify the commit message.
-t, --tag
Create a tag by using the tags_subdir instead of the branches_subdir
specified during git svn init.
分支
在SVN存储库中创建分支。
-m、 --讯息
允许指定提交消息。
-t、 --标签
使用tags_subdir而不是Branchs_subdir创建标记
在git svn init期间指定。
git的早期版本没有提供创建svn分支的方法。@kch I刚刚(2008年12月7日)编译了git的v1.6.1-rc1标记,它确实包含git svn branch命令及其文档。因此git的v1.6.1版本应该(希望)包含这个命令。我知道这个问题不久前已经得到了回答,但在阅读之后,我认为它可能有助于添加特定git svn分支命令的示例,并将其与典型的工作流相关联 与kch一样,使用
git svn branch
。下面是一个完整的示例,(注意要测试的试运行的-n
):
如果这一切顺利,服务器会给出如下回答:
正在r8914复制到
如果没有-n
开关,服务器可能会添加如下内容:
找到可能的分支点:=>,8914
找到分支父级:
(参考文献/遥控器/认证错误)
d731b1fa028d30d685fe260f5bb912cbf59e1971
使用do_开关跟随父级
成功跟踪父级r8915=6ed10c57afcec62e9077fbeed74a326eaa4863b8
(参考文献/遥控器/认证错误)
最好的部分是,现在您可以基于远程分支创建本地分支,如下所示:
git checkout -b local/auth_bug auth_bug
这意味着“签出并创建名为auth_bug
的本地分支,并使其跟随远程分支(最后一个参数)auth_bug
使用dcommit
和--dry run
(-n
)测试您的本地分支是否在该远程分支上工作:
SVN服务器应回复新的分支名称:
致力于
事实上,我现在安装了1.6.1,并且该命令可用。相应地更新了我的答案。是的,git co意味着Jesper设置了git别名。更新了
git co
,并用git checkout
替换了git co
,这样这个示例就可以适用于任何人了。我已经对这个答案投了赞成票,但我不知道我又回来了多少次。谢谢re是git svn branch命令中一个棘手的部分-您必须联机才能以这种方式创建新分支。您可以在脱机状态下执行以下操作:1.git checkout-b foobar
2.hack hack 3.git commit-m“Done foobar”“
。在线时,通过执行1来推动这一变化<代码>git svn分支foobar2git分支——设置上游foobar远程/foobar
3git svn dcommit
。因此将步骤2替换为git checkout-b foobar新遥控器/foobar
。3. <代码>git签出foobar4<代码>git rebase foobar new5。测试以确保分支现在提交给svn分支<代码>git svn DCOMIT--试运行6。最后实际提交git svn dcommit
7。删除临时分支git分支-D foobar新建相关问题:
git checkout -b local/auth_bug auth_bug
git svn dcommit -n