两个不同的Git仓库在同一目录中

时间:2012-01-08 15:36:42

标签: git

我想维护两个不同的git回购。 repos应该保留在同一个根目录中。怎么实现呢?

我愿意的是:管理两个略有不同的回购。我可以在同一个文件夹中有两个完全不同的回购吗?

感谢关心:)

2 个答案:

答案 0 :(得分:10)

您可以通过在git命令本身上使用以下两个选项之一添加来实现此目的:

git --work-tree=where/my/code/is --git-dir=some/path/to/my/.git status

这将允许您有2个单独的repos共享相同的工作文件夹。

但是,你应该能够通过使用一个具有多个分支的repo来获得你所需要的东西,并且可能只将某些分支推送到多个遥控器。

答案 1 :(得分:2)

我解决了这个问题,git似乎没有提供一个好的解决方案,不使用git来解决它。我使用directory junction将新的子文件夹链接到父文件夹的子文件夹(即将子文件夹链接到“uncle文件夹”:P)。 Windows Vista及更高版本的命令提示符示例:

cd CurrentFolder/
mklink /J "LinkedFolder" "../TargetFolder"

将导致LinkedFolder指向TargetFolder(注意引号)。然后我将使用示例文件结构:

  • 根/
    • TargetFolder /
      • 共享文件
    • CurrentFolder /
      • LinkedFolder /

"POSIX-compliant" operating systems seem to use ln or ln -s for this functionality.

它运行良好(注意:以下内容来自我自己的Windows 8.1测试):

  • 在调用mklink
  • 之前,LinkedFolder不存在
  • 当您建立链接时,您对TargetFolder或LinkedFolder中的文件所做的任何事情都将反映在另一个中,因为它们是同一个
  • 如果删除链接(LinkedFolder),实际目标文件夹(TargetFolder)没有任何反应
  • 如果删除实际目标文件夹(TargetFolder),该链接将保持活动状态(不会被删除);如果您随后尝试访问该链接,则只会出现错误;如果再次重新创建实际目标文件夹(TargetFolder),该链接将继续像以前一样工作!

希望这有助于某人。我刚刚了解了这个功能,我喜欢它。

另见:
NTFS Junction Point
NTFS Symbolic Link
Symbolic Link