在工作环境中,我们的版本控制是Subversion,而且不太可能改变。我想在本地使用Git,主要是为了本地存储库的优势。
上下文
基本网址:http://www.example.com/code( ./ trunk , ./ branches , ./ tags )。
使用TortoiseGit,我能够指定要检出哪一个。我想在本地提供所有分支,标签和主干。这意味着,如果需要,我可以根据其中一个远程分支从本地分支合并回主服务器。
如何正确执行此操作?
在这个漫长的过程完成之后,我尝试使用TortoiseGit的“SVN Rebase”从master
转到remotes/branch/test-branch
来重新绑定到 remotes / branches / EXAMPLE-BRANCH1 。这失败了,说师傅落后了。
当我尝试从master
转到基于remotes/branch/test-branch
的本地分支时,合并无效。
答案 0 :(得分:0)
使用标准布局克隆您的仓库,包括所有主干/分支/标签(如您所述):
git svn clone -s http://www.example.com/code new-repo-directory
注意:使用git不是灵丹妙药。您仍然需要解决合并/ rebase冲突。你可能会少得多,但它们不会完全消失。失败可能是准确的,表示您需要解决冲突,然后使用git rebase --continue
完成您的变基。
我确信Tortoise对许多事情都有很大的帮助。但是我多次被告知,如果你学会使用命令行(我相信我同意)你将从git中获得更多,并且一旦你理解它们是什么就只使用GUI助手作为工具在幕后做。
PS - git svn rebase
用于在当前SVN跟踪分支的顶部应用SVN中所做的更改。如果您尝试合并2个不同的SVN跟踪分支,则需要使用git checkout branch-to-update
然后git rebase branch-with-updates
(并解决所有冲突,然后git add the-conflicted-file
和git rebase --continue
,直到完成为止)