Git 2.17更新日志描述了此选项:
- 有人介绍了克隆和获取的机制,这又涉及包装和拆包对象,该机器已被告知如何使用
另一个主题引入的过滤机制来省略某些对象。现在
,它知道将生成的包标记为允诺包,以容忍丢失的
对象,为“狭窄”克隆奠定基础。
这个标志准备好使用了吗,还是很有可能很不稳定?有谁知道正确的语法通过?我通过的所有标志都被视为无效的过滤器规范而被拒绝。例如,这些是我尝试按目录过滤的:
git clone file://path --depth=1 --filter '--subdirectory-filter Assets' TestRepo
git clone file://path --depth=1 --filter --subdirectory-filter Assets TestRepo
git clone file://path --depth=1 --filter Assets TestRepo
Run Code Online (Sandbox Code Playgroud) 如何从 git 存储库克隆、获取或稀疏检出单个文件或目录或文件或目录列表,以避免下载整个历史记录或至少保持历史记录下载最少?
为了登陆这里的人的利益,这些是对其他类似问题的参考:
很久以前就有人问过这些类似的问题,从那以后 git 不断发展,最终导致了大量不同的答案,有些更好,有些更糟,具体取决于所考虑的 git 版本。问题在于,上述问题中没有一个答案能满足所有这些问题的所有要求,这意味着您必须阅读所有答案并在头脑中编译自己的答案,最终才能满足所有要求。
这里的这个问题扩展了前面提到的问题,提出了比所有其他问题加起来更灵活和严格的要求。所以,再一次:
如何从 git 存储库克隆、获取或稀疏检出单个文件或目录或文件或目录列表,以避免下载整个历史记录或至少保持历史记录下载最少?
git git-fetch git-checkout revision-history git-sparse-checkout
我不想克隆整个存储库.我们有一个300 MB的存储库,我只想要名为/ sourcecode的文件夹,而不是下载整个根文件夹.
有没有办法做到这一点?
根据Subdirectory Checkouts with git sparse-checkoutgit read-tree -mu HEAD在已存在存储库的情况下配置稀疏结帐后调用一次,即:
# Enable sparse-checkout:
git config core.sparsecheckout true
# Configure sparse-checkout
echo some/dir/ >> .git/info/sparse-checkout
echo another/sub/tree >> .git/info/sparse-checkout
# Update your working tree:
git read-tree -mu HEAD
Run Code Online (Sandbox Code Playgroud)
read-tree更详细地解释一下这个步骤吗?read-tree而不是,让我们说,checkout?-mu(为什么这是一个合并,什么是合并)?-m
Run Code Online (Sandbox Code Playgroud)Perform a merge, not just a read. The command will refuse to run if your index file has unmerged entries, indicating that you have not finished previous merge …
我理解如何在Git中配置稀疏结账,但我想知道是否可以消除主要目录.例如,假设我有一个Git存储库,其文件夹结构如下:
我只想要里面的内容stuff2.对于那些目录的稀疏检出,.git/info/spare-checkout文件看起来像这样:
folder3/another/foo/bar/stuff2/
Run Code Online (Sandbox Code Playgroud)
我的问题是在我完成稀疏结账后,我没有看到stuff2或者stuff2我的目录根目录内的内容; 我看到folder3,然后所有的子目录导致stuff2.
我猜这个问题的答案是Git不可能,但我只是想确定一下.这是我想念的SVN的一种(也是唯一的)行为; 能够运行svn co https://url.com/myrepo/folder3/another/foo/bar/stuff2 .并将内容转储到当前目录中.
我正在尝试从 git 存储库中稀疏签出一个子目录。
该存储库包含多个 WordPress 插件,我想一一查看它们。通过下面发布的解决方案,我遇到了这样的问题:每次我检查子目录的父目录时也会检查并且插件无法工作。
我尝试过这样的事情是否可以在不先检查整个存储库的情况下进行稀疏结帐?以及用于简单 Web 部署的 Git 稀疏结帐之类的东西。
我真的希望有人可以帮助我,因为我只是觉得我错过了一些信息。
谢谢。
git subdirectory git-checkout sparse-checkout git-sparse-checkout
在jenkins文件中,我通过SparseCheckoutPaths指定了folderName,我想要签出.但我得到一个完整的分支结账.
checkout([$class: 'GitSCM',
branches: [[name: '*/branchName']],
extensions: [[$class: 'SparseCheckoutPaths', path: 'FolderName']],
userRemoteConfigs: [[credentialsId: 'someID',
url: 'git@link.git']]])
Run Code Online (Sandbox Code Playgroud) 例如,我想获取此文件夹https://github.com/python/cpython/tree/2.7/Tools/freeze
我运行的命令是:
mkdir python
cd python
git init
git remote add origin https://github.com/python/cpython.git
git config core.sparsecheckout true
echo "Tools/freeze/*" >> .git/info/sparse-checkout
# find remote branches
git remote show origin
# this works and pulls only that folder
git pull --depth=1 origin master
# but this doesn't, why?
git pull --depth=1 origin 2.7
# but how do I switch to remote 2.7 branch?
git checkout --track -b 2.7 origin/2.7
fatal: Cannot update paths and switch to branch '2.7' at the …Run Code Online (Sandbox Code Playgroud) 克隆此存储库后:
\n\nhttps://github.com/OpenFOAM/OpenFOAM-3.0.x
\n\n我立即提交了更改。\n我尝试使用更改文件的常见解决方案来textmode修复crlfauto它./git/config。我也尝试过该.gitattributes文件。但是,这不是行结尾问题。我对代码进行了实际更改。
这是我的过程和输出:
\n\ncruz@MacBook-Air-de-Luis \xee\x82\xb0 ~/dev \xee\x82\xb0 git clone https://github.com/luiscruz/OpenFOAM-3.0.x.git\nCloning into \'OpenFOAM-3.0.x\'...\nremote: Counting objects: 49097, done.\nremote: Total 49097 (delta 0), reused 0 (delta 0), pack-reused 49097\nReceiving objects: 100% (49097/49097), 59.70 MiB | 2.29 MiB/s, done.\nResolving deltas: 100% (30768/30768), done.\nChecking connectivity... done.\nChecking out files: 100% (13863/13863), done.\n cruz@MacBook-Air-de-Luis \xee\x82\xb0 ~/dev \xee\x82\xb0 cd OpenFOAM-3.0.x\n cruz@MacBook-Air-de-Luis \xee\x82\xb0 ~/dev/OpenFOAM-3.0.x \xee\x82\xb0 \xee\x82\xa0 master \xe2\x97\x8f \xee\x82\xb0 git status\nOn branch master\nYour branch is up-to-date …Run Code Online (Sandbox Code Playgroud) git ×8
git-checkout ×2
bash ×1
branch ×1
git-fetch ×1
github ×1
groovy ×1
jenkins ×1
macos ×1
subdirectory ×1
tortoisegit ×1