Hos*_*ork 23 git symlink git-submodules
我有我的第一个Git Submodule体验.
我有一些项目依赖于同一个子项目.我保持这些项目同步,所以我使用"子模块分支"功能(例如git submodule add -b master [URL]).
虽然我希望公共GitHub存储库传达子模块关系,但在我自己的工作流程中,我真的只想在我的磁盘上有一个共享代码库的克隆.我想我可以设置子模块,然后用符号链接做一个切换器.但是当我这样做时,我得到了这个:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
typechange: draem
Run Code Online (Sandbox Code Playgroud)
所以Git显然认为它是一个符号链接,而不是跟随目录.
是否有任何工作流程,我似乎可以使用子模块,但我的本地文件系统上只有一个克隆?
您可以绑定安装子模块的其他目录
sudo mount --bind /path/to/main/repo relative/path/to/submodule
Run Code Online (Sandbox Code Playgroud)
我找不到有关此方法的太多信息,但看到它在此类似问题中列出。
因此,Git 显然看到了它是一个符号链接的事实,而不是跟踪到目录。
是的,Git 会看到这样的更改,因为该子模块在父存储库中声明为索引中的特殊条目。
创建符号链接将用另一种类型的文件替换该特殊条目。
您可以做的就是尝试使用GIT_WORK_TREE(如“在 git checkout 中包含子模块到GIT_WORK_TREE钩子中”)。
但更简单的解决方案是:
/path/to/sub)。git --work-tree=/path/to/sub status使用父存储库中复制的子模块文件夹中的 检测原始子模块文件夹中的任何更改。它将检测以下之间的变化:
git --work-tree=/path/to/sub status命令)--work-tree=/path/to/sub)你可以:
| 归档时间: |
|
| 查看次数: |
3378 次 |
| 最近记录: |