我意识到之前已经问过类似的问题:How do I clone a subdirectory only of a Git repository?但是我无法找到我的具体问题的答案,所以请不要将其标记为重复。
我的repo中有一个名为statics /的子文件夹。我希望该子文件夹的文件最终在我的本地仓库的根目录中。
我做了echo statics/ >> .git/info/sparse-checkout
但是当我拉动时,我在我的本地回购中以/statics/file.css
结尾。我只想要/file.css
。
我该怎么做?
使用的命令参考:
git init
git remote add -f https://github.com/xxx/xxx.git
git config core.sparsecheckout true
echo statics/ >> .git/info/sparse-checkout
git pull origin master
答案 0 :(得分:3)
这里有git checkout
个任意树。有一个你打电话给scratchpad
的分支,你的内容可能偶尔会为后人记录。
git checkout scratchpad
git read-tree -um --aggressive `git write-tree`: anycommityoulike:statics
任何时候,如果想要覆盖worktree内容并且你不在乎,请将-um
更改为-u
并在之后执行git checkout -f
。
编辑:只是在我们已经在那里结帐时。
答案 1 :(得分:0)
我认为这是不可能的:稀疏结账机制不是文件重定位工具。正如您在使用稀疏结账时所解释的here,Git仅对为索引文件中的条目设置的特殊位进行操作。它不会重新定位任何东西。