让我们假设我们有一个Git repo,它有一个三级子文件夹:
|_
|_Folder1
|_Folder2
|_ SubFolder2
|_ SubSubFolder2
我需要稀疏 checkout 此文件夹,并将其放置在C:\MyRepo
文件夹内的不同位置(在Windows上)-摆脱领先的Folder 2目录:
C:\MyRepo
|_ SubFolder2
|_ SubSubFolder2
这是可能的,或者Git稀疏 checkout 总是尊重原始(远程存储库)文件夹结构,不能改变?
P.S.我尝试了以下标准代码:
git clone --no-checkout --sparse <remoteRepoURL> "C:\MyRepo"
cd /d "C:\MyRepo"
git sparse-checkout set "Folder2/SubFolder2/SubSubFolder2"
git checkout
但我得到原始(远程存储库)文件夹结构:
C:\MyRepo
|_Folder2
|_ SubFolder2
|_ SubSubFolder2
有没有办法改变这种默认行为?
7年前有一个similar question问题-仍然没有明确的答案。
1条答案
按热度按时间ar7v8xwq1#
在git-bash中,首先将树读入一个临时索引文件。
然后,将索引中的文件夹和文件 checkout 到目标。
删除临时索引。我们还可以使用命令
mktemp
创建一个随机临时文件,以避免命名冲突。注意,在Windows上,
/c/MyRepo/
也可以是c:\\MyRepo\\
。结尾/
和\\
不能缺失。对于Windows CMD(我尝试使用
Microsoft Windows [Version 10.0.19042.1165]
),我不熟悉Windows CMD,所以我不确定2个
set
命令是否正确。