使用" git svn"有两棵树

时间:2015-05-12 14:04:34

标签: git-svn tortoisegit git-clone

我开始在工作中使用git作为Subversion客户端。现在我一直在使用TortoiseGit,或多或少我以前使用TortoiseSvn,但是使用本地提交,分支,合并,重新定位,采摘樱桃。

这是一个大项目,切换分支并重新编译所有内容需要很长时间。这就是为什么我想要两个(或更多)工作树对应Subversion项目的两个分支。

我想知道是否可以共享两个工作树(它的5GB)的.git文件夹,或者我需要克隆存储库或者可能从subversion再次检出它(花了几个小时)。

git book看来,如果两个git存储库之间的交互与svn交互也不会很好(我不知道这是否适用于我的情况):

  

不要重写您的历史记录并尝试再次推送,也不要推送到并行Git存储库以同时与其他Git开发人员协作。 Subversion只能有一个线性历史记录,而且容易混淆。如果您正在与团队合作,而有些人正在使用SVN而其他人正在使用Git,请确保每个人都使用SVN服务器进行协作 - 这样做会让您的生活更轻松。

我想拥有一个包含所有svn分支和所有本地分支的存储库,我希望有几个工作树,以避免在切换分支后重建所有内容。这可能吗?

我不太了解"裸露"或"分享" repos,remotes和clone,这是一个非常有用的基本示例。

1 个答案:

答案 0 :(得分:0)

这就是我最终做的事情:

正如johannes所说,有一个脚本可以解决我在Linux上的问题(http://nuclearsquid.com/writings/git-new-workdir/)。但我在Windows上:

  • https://github.com/joero74/git-new-workdir
  • 下载脚本的Windows端口
  • 以管理员身份打开cmd(git会安装一个不能使用此脚本的Git bash,您需要使用cmd
  • 如果您没有git,请将git添加到路径中。就我而言set PATH=%PATH%;"C:\Program Files (x86)\Git\bin"
  • 执行脚本。在我的情况下,我有一个名为Project的文件夹(其中包含.git文件夹):git-new-workdir.cmd .\Project .\Project2

这将创建一个新文件夹Project2,其中包含一个工作树和一个名为.git的文件夹。这个.git文件夹有原始Project / .git的链接,所以如果我做一些git svn fetch或创建本地分支或任何东西,那么" copy"同时更新(没有pushpull)。工作树是不同的:如果我将分支切换为一个,另一个不会改变,我可以同时在不同的分支上工作。

我只需要记住原始.git的位置,永远不要删除它。