Answers:
git fetch
git checkout HEAD path/to/your/dir/or/file
其中,“ path/...
”(3)开始在目录略低于含回购根你的“ .../file
”
注意,可以使用特定提交的哈希码代替“ HEAD”,然后您将获得该提交特定的修订(文件)或修订(目录)。
--
不是必需的。它强制将其后的位解释为路径。因此,是的,如果您有一个--help
要检出名称的文件,则需要在这些文件前加上以下连字符:git checkout HEAD -- --help
在一个空目录中:
git init
git remote add [REMOTE_NAME] [GIT_URL]
git fetch REMOTE_NAME
git checkout REMOTE_NAME/BRANCH -- path/to/directory
fetch
或没有checkout
命令,我们只需在remote add
命令后发出pull请求即可获得整个master分支。
经过大量寻找答案,没有找到,放弃,再试一次等等之后,我终于在另一个SO线程中找到了解决方案:
要复制粘贴其中的内容:
git init
git remote add -f origin <url>
git config core.sparsecheckout true
echo <dir1>/ >> .git/info/sparse-checkout
echo <dir2>/ >> .git/info/sparse-checkout
echo <dir3>/ >> .git/info/sparse-checkout
git pull origin master
要执行OP想要的操作(仅在一个目录上工作),只需.git/info/sparse-checkout
在执行上述步骤时将该目录添加到中即可。
非常感谢@cforbish!
master
。只要确保您确实git branch --set-upstream-to=origin/<branch>
正确地拉扯
这是不可能的。您只需要提取所有存储库或什么都不需要。
也许这个命令会有所帮助:
git archive --remote=MyRemoteGitRepo --format=tar BranchName_or_commit path/to/your/dir/or/file > files.tar
“ Etvoilà”
git clone --filter
从Git 2.19
该选项实际上将跳过从服务器获取不需要的对象。
我在以下位置写了详细的答案来解释当前的支持状态:如何仅克隆Git存储库的子目录?
git clone
在该领域为之实施的任何东西都很有可能也会有git pull
类似物。
尝试并测试了这个作品!
mkdir <directory name> ; //Same directory name as the one you want to pull
cd <directory name>;
git remote add origin <GIT_URL>;
git checkout -b '<branch name>';
git config core.sparsecheckout true;
echo <directory name>/ >> .git/info/sparse-checkout;
git pull origin <pull branch name>
希望这对您有所帮助!
对于像我一样的理论文件路径和示例所做的所有努力,下面是一个真实的示例:Microsoft在git hub上提供了他们的文档和示例,但不幸的是,他们确实为该存储库中的大量主题收集了所有示例文件:
https://github.com/microsoftarchive/msdn-code-gallery-community-s-z
我只对路径中的Microsoft Dynamics js文件感兴趣
msdn-code-gallery-community-s-z/Sdk.Soap.js/
所以我做了以下
创建一个
msdn-code-gallery-community-s-zSdkSoapjs\.git\info\sparse-checkout
磁盘上我的存储库文件夹中的文件
git sparse-checkout init
在Windows上使用cmd在该目录中
文件内容
msdn-code-gallery-community-s-zSdkSoapjs\.git\info\sparse-checkout
是
Sdk.Soap.js/*
终于做一个
git pull origin master