我是Git的新手.我想克隆一个大型远程存储库xyzcodebase.repo的结构就像我有不同功能区域的src文件夹,如下所示.
xyzcodebase
|
|__ Func area 1
|
|__ Func area 2
Run Code Online (Sandbox Code Playgroud)
我Functional area 2在克隆时工作,我不想要Functional area 1(大尺寸)代码,这将节省我的大量时间.因此,克隆后Functional area 2,我的本地存储库中只有源代码.
有没有办法完成git存储库的这种选择性克隆?
在此先感谢您的帮助
有没有办法只对某些文件类型(.xlf)执行git checkout,它会在整个存储库中进行递归?结果应包含存储库的结构,即文件夹和特定扩展名的包含文件.
回购A.
file.xlf
file.txt
level2/
file2.xlf
file2.txt
level3/
file3.xlf
file3.txt
Run Code Online (Sandbox Code Playgroud)
结帐后回购B看起来像:
回购B.
file.xlf
/level2
file2.xlf
/level3
file3.xlf
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
$ git checkout FETCH_HEAD -- '*.xlf'
Run Code Online (Sandbox Code Playgroud)
这将提供".xlf"根级别的所有文件,但不会递归到子目录.
感谢您的帮助.
我有一个存储库.在此存储库中有多个文件夹可用.
我在此存储库中只需要一个文件夹.
我已经尝试按照命令但它不起作用.
git clone
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的partialClone功能。在这个答案中,我看到了git clone --filter=tree:none <repo>命令。
但是当试图在 github 上执行时,提示warning: filtering not recognized by server, ignoring. 这没用。
我想知道是不是GitHub网站不支持,还是我的设置有问题。
问了GitHub的反馈人员,没有得到技术人员的答复。
请参阅标签部分.
这个决定背后的理由是什么?合并是否会影响构建最新binutils和GDB的建议方式?(事实上当我检查binutils-2_25_1并跑步时make all && make install,我也得到了gdb.)
如何从 git 存储库克隆、获取或稀疏检出单个文件或目录或文件或目录列表,以避免下载整个历史记录或至少保持历史记录下载最少?
为了登陆这里的人的利益,这些是对其他类似问题的参考:
很久以前就有人问过这些类似的问题,从那以后 git 不断发展,最终导致了大量不同的答案,有些更好,有些更糟,具体取决于所考虑的 git 版本。问题在于,上述问题中没有一个答案能满足所有这些问题的所有要求,这意味着您必须阅读所有答案并在头脑中编译自己的答案,最终才能满足所有要求。
这里的这个问题扩展了前面提到的问题,提出了比所有其他问题加起来更灵活和严格的要求。所以,再一次:
如何从 git 存储库克隆、获取或稀疏检出单个文件或目录或文件或目录列表,以避免下载整个历史记录或至少保持历史记录下载最少?
git git-fetch git-checkout revision-history git-sparse-checkout
根据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