我正在尝试使用SubGit http://subgit.com/但我面临着分支的问题:我希望在 Git 下创建的分支仅在 Git 中生存和消亡。我找到了这个:SubGit:如何排除分支? https://stackoverflow.com/questions/16588228/subgit-how-to-exclude-branches,但它说
麻烦来自于合并提交:如果提交 A 是将分支 foo 合并到 master 的结果,那么 SubGit 会在 Subversion 端为提交 A 的相应父级创建分支/foo。如果您不想将 SubGit 生成的分支包含到branches/* 命名空间中,请考虑在 Subversion 端使用一些特殊分支
我不想弄乱 SVN,因为我正在评估 Subgit 并且我不想更改 SVN 上的任何内容。我想我可以实现我的目标(意思是,仅将合并的历史记录提交给 SVN,而不是 git 分支)rebasing http://git-scm.com/book/en/Git-Branching-Rebasing在推送到 Git 存储库之前,但我担心这可能会导致提交回 SVN 时发生冲突。关于如何解决这个问题的任何想法,而无需等待 SubGit 版本 2.1(声称可以做我想做的事,但不会在不久的将来 - 引用链接的答案:it's going to take some time before we implement it
)?
SubGit 仅同步您在 SubGit 配置文件中指定的分支。默认情况下它们是:
trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*
因此,如果您使用另一个名称空间,例如refs/heads/nosync/*,其中的分支不会同步。
或者,您可以将 refs/heads/* 用于普通分支(不同步)并设置特殊的 refs/heads/sync/* 命名空间以进行同步:
trunk = trunk:refs/heads/sync/master
branches = branches/*:refs/heads/sync/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/sync/*
请注意,长分支名称(如 refs/heads/sync/master)不会导致不便,因为克隆此类 Git 存储库后,您可以分配自己的本地 refs/heads/* 短名称分支来跟踪长名称分支来自一个或另一个命名空间。这就是为什么我认为这对您来说是一个很好的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)