在 Windows 上使用 Git,我试图处理我的 git 存储库外部的内容。例如,我们有艺术作品和内容文件,这些文件正在由非 git 用户在谷歌驱动器中更新,因此为了捕获这些更改,我设置了类似于以下内容的内容;
d:\MyRepo
\.git
\code1
\images1
\fonts (junction) => c:\users\%username%\google drive\designerLtd\fonts
\etc
其中“字体”是一个文件夹,已使用 junction.exe
或 mklink/j
(相同的东西)链接。这通常效果很好,因为 Git status
会立即突出显示新的更改(无论是有意还是无意),并为 checkin 或撤消做好准备。
问题:有时切换分支时,如果这些文件夹中的内容在分支之间不同,Git 会修剪链接目录并重新创建它们。实际上它断开了链接。现在 Git 总是正确的并且构建是一致的,但它不再跟踪那些外部资源并不总是很明显。
更糟糕的是,它可以删除外部位置的文件。它们当然可以从 git 中恢复,但它非常笨重。
切换分支时交换外部位置的内容不是问题,因为只有一台 PC 以这种方式连接并且它们很容易 merge ,但我只是希望它不会破坏链接。
问题:是否有更好的方法允许在 Windows 上的 Git 存储库中使用外部连接点?
需要明确的是,据我所知,GIT 存储库中(还)没有符号链接(symbolic link),这不是关于 Unix 和 Windows git 客户端之间互操作性的问题(SO 上的大多数其他问题似乎都相关)到)。
最佳答案
您可以修改连接点的权限,使 git 无法再删除它。 Git 通常不关心删除目录是否失败(除非它需要用文件替换目录)。
参见 https://support.microsoft.com/en-us/kb/205524 中的“使用建议”
关于windows - 在 Windows 上安全地使用 junction 或 mklink/j 与 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882917/