我开始使用git作为颠覆客户端。目前,我一直在使用Tortoisegit,或多或少地使用Tortoisesvn,但是使用 local 提交,分支,合并,rebase,rebase,Cherry otching。
这是一个大型项目,切换一个分支并重新编译一切花费太长时间。这就是为什么我想拥有与颠覆项目的两个分支相对应的两个(或更多)工作的树。
我想知道是否可以共享两个工作树(其5GB)的.git文件夹,或者我需要克隆存储库或再次从颠覆中结帐(花了几个小时)。
>从GIT书中看,如果两个GIT存储库之间的互动也不会与SVN互动(我不知道这是否适用于我的案件):
):不要重写您的历史并尝试再次推动,也不要推到同时与GIT开发人员合作的并行GIT存储库。颠覆只能具有单个线性历史记录,并且混淆它非常容易。如果您正在与团队合作,而有些人正在使用SVN,而另一些则使用Git,请确保每个人都使用SVN服务器来协作 - 这样做将使您的生活更轻松。
我想拥有一个带有所有SVN分支和所有本地分支的单个存储库,我想拥有几棵大树的树木,以避免切换分支后重建所有内容。这可能吗?
我对"裸机"或"共享"存储库,遥控器和克隆的了解不多,设置此设置的基本示例将非常有帮助。
这是我最终所做的:
正如约翰内斯建议的那样,有一个脚本可以在Linux上解决我的问题(http://nuclearsquid.com/writings/git-new-workdir/)。但是我在Windows上:
- 从https://github.com/joero74/git-new-workdir下载脚本的Windows端口
- 打开
cmd
作为管理员(git安装一个无法与此脚本一起使用的Git bash
,您需要使用cmd
进行操作) - 如果没有,则将git添加到路径上。在我的情况下
set PATH=%PATH%;"C:Program Files (x86)Gitbin"
- 执行脚本。就我而言,我有一个名为project的文件夹(其中包含.git文件夹):
git-new-workdir.cmd .Project .Project2
这将创建一个新的文件夹Project2,其中有一个工作树和一个名为.git的文件夹。此.git文件夹具有指向原始项目/.git的链接,因此,如果我做一些git svn fetch
或创建本地分支或其他任何内容,则两个"副本"将同时更新(没有push
或pull
)。工作树是不同的:如果我将分支切换为一个,另一个不会改变,我可以同时在不同的分支上工作。
我只需要记住原始.git在哪里而永远不会删除它。