我有一个包含3个子模块的git存储库,如下所示:
foo/ # main repository
bar1/ # submodule1
bar2/ # submodule2
bar3/ # submodule3
git init
在主存储库中执行后,我直接添加了子模块:
git submodule add https://github.com/bar1.git bar1
...
现在奇怪的是,如果我添加一个新目录,例如foo/test/
git,则不会跟踪其中的更改foo/test/
。仅foo/
跟踪直接在内部的更改或对子模块的更改。这是为什么?
在我看来,git就像对待foo/test
子模块一样,但事实并非如此。
.gitignore看起来像这样:
.idea/
...它基本上只忽略与隐藏的IDE项目相关的目录。
.gitmodules看起来像这样:
[submodule "bar1"]
path = bar1
url = https://github.com/...
[子模块“ bar2”]路径= bar2网址= https://github.com/ ... [子模块“ bar3”]路径= bar3网址= https://github.com/ ...
我是否必须手动告诉gitfoo/test/
应该保留在主存储库中并且它不是子模块?
我刚刚发现了问题。我不知道为什么,但是我的git-config搞砸了。
做一个简单的git config --list
(在中foo/
)表明这core.worktree
是错误的:
core.worktree=../../../bar1
我不记得手动更改配置。我刚刚克隆了我的存储库的新副本,更新了子模块,并将新的更改复制foo/test/
到了新克隆的仓库中。现在一切正常。
我猜唯一的问题是我怎么会错误地弄乱“旧的/错误的”仓库的git配置...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句