在我的工作场所,我们使用SVN(相当无效)已经有一段时间了,并且终于在寻找将Git融入我们日常工作流程的方法。由于我是这里为数不多的有Git过去经验的人员之一(在GitHub上管理个人项目),我正在玩git svn,暂时将它用作我们svn存储库的客户端,并希望能够写出来一些文档,以帮助其他开发人员介绍给Git,而无需我们移动整个源代码控制和构建系统。
我使用git bash中的以下命令克隆了我们的主要SVN开发分支:
git svn clone -r HEAD path_to_svn Work
它已成功创建我的工作文件夹并删除了我的所有文件。我一直在浏览这个website for git svn tutorials的一些示例工作流程,这看起来非常有希望。但是,我想知道我新创建的Work目录是否可以引用SVN repo以及Git。我们使用TortoiseSVN作为SVN的客户端,我特别想要的是能够在Windows中右键单击克隆的SVN repo并访问"Check for modifications"
等工具,以查看当前代码库与当前代码库之间存在的差异。什么是远程SVN存储库中包含的内容。
理想情况下,我希望能够继续使用我们的TortoiseSVN工具并在实际将更改推送到服务器时提交对话框,同时充分利用Git中的分支和提高工作效率的一切。我觉得会有一个体面的过渡期,人们会使用这些新技术,所以我希望尽可能地让这种体验变得友好。这有可能吗?或者通过切换到git-svn,我被迫使用git作为SVN服务器的独占客户端,并使用git svn dcommit
之类的命令来实际推动我的工作。
答案 0 :(得分:1)
由于您对TortoiseSVN感到满意,我建议您使用TortoiseGit。用户界面&经验非常相同。在这里查看TortoiseGit的screenshots。在与svn相同的位置创建git repo不是一个好主意。因为如果你使用TortoiseSVN将你的更改提交给svn,那么git repo就不会处于相同的状态。因此,下次git svn rebase
您的工作目录将与git试图提取的更改发生冲突。相反,我建议你将你的svn存储库与你的git clone分开。因此,如果由于某种原因你不清楚你在git上做了什么,你总是可以切换回svn。但如果你真的想使用git-svn,请不要过分依赖备份(即svn)。
答案 1 :(得分:1)
当您git svn clone
SVN-repository时,您将本地Git-repository与源SVN一起作为远程(并且可以使用Git-client拉出Subversion)。因此 - 您可以在Work
上使用SVN客户端:它确实有没有与SVN相关的
您可以尝试将两个工作目录合并到单个目录中,但是 - 头疼(未测试 - 使用SVN将相同的修订签出到另一个位置,将.svn
文件夹移动到{{ 1}},忽略Subversion中的Work
文件夹和Git中的.git
文件夹)没有保证良好的结果