这是 git-clone-subset 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
git-clone-subset - 克隆 git 存储库的子集
概要
git 克隆子集 [选项] 知识库 目的地目录 模式
商品描述
克隆一个 知识库 成 目的地目录 并在克隆上运行
混帐 过滤器分支 --修剪-空 --tree-过滤器 'git rm ...' -- - 全部
从历史记录中修剪除匹配文件之外的所有文件 模式, 有效地创建一个
使用原始存储库的文件子集(和历史记录)进行克隆。
用于从另一个存储库的一组文件中创建新存储库,
迁移(仅)其相关历史记录。 很像什么
混帐 过滤器分支 --子目录过滤器
确实如此,但对于文件模式而不仅仅是单个目录。
配置
-h, - 帮帮我
显示使用信息。
知识库
要克隆的 git 存储库的 URL 或本地路径。
目的地目录
创建克隆的目录。 适用于 git-clone 的相同规则:它将是
如果它不存在则创建,否则它必须为空。 但是,不像 git-
clone,这个参数不是可选的:git-clone 使用几个规则来确定
克隆 repo 的“人性化”目录名称,并且 git-clone-subset 不会冒险解析
它的输出,更不用说预测选择的名称了。
模式 全局模式以匹配所需的文件/目录。 它将最终由一个评估
调用 bash,而不是 git 或 sh,使用扩展的 glob '!( )' 规则。 引用它或
在命令行上转义它,因此它不会被您过早地评估
当前外壳。 只允许一个模式:如果需要更多,请使用
extglob 的“|” 句法。 Glob 将使用 bash 的 shopt dotglob 集进行评估,因此
谨防。 模式不应包含空格或特殊字符,例如“ ' $ ( ) { } `,
甚至没有引用或转义,因为这可能会与 !() 语法发生冲突
模式扩展。
模式示例:
“*.png”
"*.png|*图标*"
"*.h|src/|lib"
限制
不遵循重命名。 作为解决方法,使用 'git log --follow 列出重命名历史记录
--name-status --format='%H' -- 文件 | grep "^[RAD]"' 并包含一个的所有多个名称
模式中的文件,如“currentname|oldname|initialname”。 作为副作用,如果
不同的文件代替了旧名称,它也会被保留,并且没有
使用这个工具解决这个问题。
没有(简单的)方法可以将某些文件保存在目录中:使用 'dir/foo*' 作为模式不会
工作。 所以保留整个目录并在之后删除文件,使用 git filter-branch 和
(相当复杂)克隆、远程添加、变基等的组合。
模式匹配相当有限,很多bash的转义和引用都不起作用
当模式在 !() 内扩展时正确。
使用 onworks.net 服务在线使用 git-clone-subset