我开始在工作中使用git作为Subversion客户端。现在我一直在使用TortoiseGit,或多或少我以前使用TortoiseSvn,但是使用本地提交,分支,合并,重新定位,采摘樱桃。
这是一个大项目,切换分支并重新编译所有内容需要很长时间。这就是为什么我想要两个(或更多)工作树对应Subversion项目的两个分支。
我想知道是否可以共享两个工作树(它的5GB)的.git文件夹,或者我需要克隆存储库或者可能从subversion再次检出它(花了几个小时)。
从git book看来,如果两个git存储库之间的交互与svn交互也不会很好(我不知道这是否适用于我的情况):
不要重写您的历史记录并尝试再次推送,也不要推送到并行Git存储库以同时与其他Git开发人员协作。 Subversion只能有一个线性历史记录,而且容易混淆。如果您正在与团队合作,而有些人正在使用SVN而其他人正在使用Git,请确保每个人都使用SVN服务器进行协作 - 这样做会让您的生活更轻松。
我想拥有一个包含所有svn分支和所有本地分支的存储库,我希望有几个工作树,以避免在切换分支后重建所有内容。这可能吗?
我不太了解"裸露"或"分享" repos,remotes和clone,这是一个非常有用的基本示例。
答案 0 :(得分:0)
这就是我最终做的事情:
正如johannes所说,有一个脚本可以解决我在Linux上的问题(http://nuclearsquid.com/writings/git-new-workdir/)。但我在Windows上:
cmd
(git会安装一个不能使用此脚本的Git bash
,您需要使用cmd
)set PATH=%PATH%;"C:\Program Files (x86)\Git\bin"
git-new-workdir.cmd .\Project .\Project2
这将创建一个新文件夹Project2,其中包含一个工作树和一个名为.git的文件夹。这个.git文件夹有原始Project / .git的链接,所以如果我做一些git svn fetch
或创建本地分支或任何东西,那么" copy"同时更新(没有push
或pull
)。工作树是不同的:如果我将分支切换为一个,另一个不会改变,我可以同时在不同的分支上工作。
我只需要记住原始.git的位置,永远不要删除它。