2013-06-20 32 views
2

在工作环境中,我们的版本控制是Subversion,这不太可能改变。我想在本地使用Git,主要是为了本地存储库的优势。如何正确地使用SVN?

语境

基本URL:http://www.example.com/code(与./trunk./branches./tags)。

使用TortoiseGit,我能够指定检出哪一个。我想在本地有全部分支机构,标签和中继线。这意味着,如果需要,我可以根据其中一个远程分支从本地分支合并回主服务器。

我该如何正确地做到这一点?

这个漫长的过程完成后,我试图变基到遥控器/分支机构/例,BRANCH1使用TortoiseGit的“衍合SVN”,打算从masterremotes/branch/test-branch。这失败了,说主人是落后了。

当我试着从master转到基于remotes/branch/test-branch的本地分支时,合并不起作用。

+0

目前还不清楚你是否在寻找git2svn(http://repo.or.cz/w/git2svn.git)或帮助你如何在git中工作。 – tgharold

回答

0

要复制您的回购协议包括与标准布局中的所有主干/分支/标签(你提到你有):

git svn clone -s http://www.example.com/code new-repo-directory 

注意:使用Git是不是银弹。您仍然需要合并/重组冲突,您需要解决这些冲突。你可能会少得多,但他们不会完全消失。失败可能是准确的,并表明你需要解决冲突,然后用git rebase --continue完成你的rebase。

我相信Tortoise对很多事情都是很有帮助的。但是我已经多次被告知,如果你学习使用命令行(我相信我同意),并且只有使用GUI助手作为工具,一旦你明白他们在做什么,你会从git中获得更多的好处场面。

PS - git svn rebase适用于在您当前的SVN跟踪分支上应用SVN中所做的更改。如果您试图合并2个不同的SVN跟踪分支,您需要使用git checkout branch-to-update,然后使用git rebase branch-with-updates(并解决冲突,然后使用git add the-conflicted-filegit rebase --continue,直至完成)。