如何从 git 存储库克隆、获取或稀疏检出单个文件或目录或文件或目录列表,以避免下载整个历史记录或至少保持历史记录下载最少?
为了登陆这里的人的利益,这些是对其他类似问题的参考:
很久以前就有人问过这些类似的问题,从那以后 git 不断发展,最终导致了大量不同的答案,有些更好,有些更糟,具体取决于所考虑的 git 版本。问题在于,上述问题中没有一个答案能满足所有这些问题的所有要求,这意味着您必须阅读所有答案并在头脑中编译自己的答案,最终才能满足所有要求。
这里的这个问题扩展了前面提到的问题,提出了比所有其他问题加起来更灵活和严格的要求。所以,再一次:
如何从 git 存储库克隆、获取或稀疏检出单个文件或目录或文件或目录列表,以避免下载整个历史记录或至少保持历史记录下载最少?
git git-fetch git-checkout revision-history git-sparse-checkout
从父目录
https://github.com/CoreyMSchafer/code_snippets.git
我浏览了一些 Stack Overflow 答案,他们说 Git 的设计目的不是从根文件夹下载特定文件。
我在 cmd 中尝试了以下命令
git clone https://github.com/CoreyMSchafer/code_snippets.git -b code_snippets/tree/master/Django_Blog/12-Password-Reset/django_project但没有成功。
如果这可能是一个可能的重复问题。
本地目录的浅克隆需要file://如下所述:git clone:warning:在本地克隆中忽略--depth; 使用file://代替
但是如何使用相对路径呢?
例如:如果我myrepo在当前目录中有一个repo ,那么我这样做:
git clone --depth 1 file://mymodule mymodule2
Run Code Online (Sandbox Code Playgroud)
然后它失败了:
Cloning into 'mymodule2'...
fatal: No path specified. See 'man git-pull' for valid url syntax
Run Code Online (Sandbox Code Playgroud)
如果我尝试:
git clone --depth 1 file://./mymodule mymodule2
Run Code Online (Sandbox Code Playgroud)
它失败了:
Cloning into 'mymodule2'...
fatal: '/./mymodule' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我能找到的唯一解决方法是将其转换为绝对路径,从以下开始/:
git clone --depth 1 …Run Code Online (Sandbox Code Playgroud) 我使用部署密钥在 GitHub 上克隆一个私有 git 项目。我没有访问该存储库的用户名和密码。
我想知道,如何从存储库中只下载一个文件,而不克隆整个项目?
下载原始文件的 GitHub API 似乎仅支持 HTTP。
我知道可以获取然后使用带有路径/到/文件的结帐来下载该特定文件。
我的问题是我每天有 1 MB 的数据上限,并且 git fetch 无论如何都会下载所有数据,即使在我使用 git checkout 之前它不会将它们保存到磁盘。我仍然使用我的数据
我对 git fetch/checkout 的理解是否正确?有没有一种方法可以下载特定文件,以便在继续下载之前查看是否有新版本。
我试图从 bitbucket 分支检索单个文件,而不是使用 git 模块获取整个分支。获取整个分支需要 2 分钟多的时间,而我实际上只需要那个文件。
我对Git很新:我来自SVN,在那里我发现了非常强大的外部功能.在Git中我找不到类似的东西:
所以场景是这样的:我有一个项目,我想在其中包含一些库.我希望有可能改变所有这些库并将它们推送到自己的库中.此外,这些库中的一些是较大项目的子目录(例如,如果项目还包括演示或自述文件,我将不会在我的项目中包含这些目录).
我怎样才能做到这一点?
我试过了:
好吧,如果你已达到这一点,感谢你的耐心,现在我想要别的东西尝试,因为现在我的结论是:"Git中不允许子树推送"ç_ç
我试图从 Github 签出单个文件。按照这个 线程后,我试过
git archive --format=tar --remote=ssh://git@github.com:user/project.git HEAD:README.md
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试通过从git ls-remote url. 然后使用这个头,我使用 wget 获得了文件。但我想知道如何使用 git 命令来做到这一点。
我通过两种不同的方式将 HTML 文件上传到 GitHub 存储库:拖放以及使用终端上的 Git 添加/提交/推送。在这两种情况下,我都收到了文件太大而无法显示的错误,但它只有 1.06 MB。我已经在 GitHub 和 SO 上搜索了文档。有什么想法吗?
我有多模块 Maven 项目。每个模块都有自己的 git repo。根据 gitlab文档,每个模块都必须有 .m2/settings.xml 文件用于 CI/CD 通过 .gitlab-ci.yml 才能工作。
我想避免在每个模块中都有相同的 .m2/settings.xml 文件。有没有办法实现这一目标?
git ×10
github ×3
ansible ×1
bitbucket ×1
git-checkout ×1
git-fetch ×1
git-subtree ×1
github-api ×1
gitlab ×1
linux ×1
maven ×1
python ×1
ssh-keys ×1
terminal ×1