情况
通过在远程存储库中拉取主分支的单个子目录,我设法在我的笔记本电脑中创建了一个本地 git 存储库。我已按照https://stackoverflow.com/a/13738951/5459638上这篇文章中给出的说明进行操作。我使用 git 版本 2.22.0。
相对于https://gitlab.com/<user>/<project>/tree/master
项目网页中给出的子目录的路径包含在文件.git/info/sparse-checkout
中,例如
subdir1/subdir11/
命令
git pull mylaptop master
确实创建了预期目录的本地副本。这通过tree -d
. mylaptop
是本地存储库的首选名称。这工作得很好。
问题
然后我想从同一个远程获取同级目录及其子目录,比如说
subdir1/subdir12/
我将此路径作为新行添加到 sparse-checkout 文件中并运行上面的 git pull 命令。然而,结果是
From https://gitlab.com/<user>/<project>
* branch master -> FETCH_HEAD
Already up to date.
我看不到本地树的变化。
研究
在 Stackoverflow 中遇到的几个建议中,我尝试了一下git update-index --skip-worktree
,但无济于事。我这样做是出于直觉,但会避免盲目试验。这也不是路径中的斜杠的问题。
问题
显然我遗漏了一些让 Git 意识到列表已经扩展的东西。这可能是什么?