这是 git-fast-export 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
git-fast-export - Git 数据导出器
概要
混帐 快速出口 [选项] | 混帐 快速导入
商品描述
该程序以适合管道传输的形式转储给定的修订 混帐
快速导入.
您可以将其用作人类可读的包替代品(请参阅 git 包(1)),或作为一种
互动的 混帐 过滤器分支.
配置
--进度=
插页 进展 声明每对象,显示 混帐 快速导入 ,我们将参加
进口。
--signed-tags=(逐字|警告|警告条|条|中止)
指定如何处理签名标签。 由于导出后的任何转换都可以
更改标签名称(排除修订时也可能发生)签名
不会匹配。
当要求 中止 (这是默认的),这个程序会在遇到
签名标签。 和 剥离,标签将被默默地签名,与 警告条 他们
将被标记为未签名,但会显示警告,并带有 逐字, 他们会
默默地导出并与 警告,它们将被导出,但您会看到警告。
--tag-of-filtered-object=(中止|丢弃|重写)
指定如何处理标记对象被过滤掉的标记。 由于修订和
要导出的文件可以受路径限制,标记的对象可能会被完全过滤。
当要求 中止 (这是默认的),这个程序遇到
这样的标签。 和 下降 它将从输出中省略此类标签。 和 改写,如果
标记对象是一个提交,它将重写标记以标记祖先提交(通过
父重写; 看 git 修订列表(1))
-M、-C
执行移动和/或复制检测,如 混帐差异(1) 手册页,以及
使用它在输出转储中生成重命名和复制命令。
请注意,此命令的早期版本没有抱怨并产生不正确的
如果你给出这些选项,结果。
--export-marks=
将内部标记表转储到完成时。 每行写一个标记
如:markid SHA-1。 仅丢弃修订标记; blob 的标记将被忽略。
后端可以使用此文件在完成后验证导入,或
跨增量运行保存标记表。 作为仅打开和截断
完成后,同样的路径也可以安全地提供给 --import-marks。 该文件将
如果没有标记/导出新对象,则不会写入。
--import-marks=
在处理任何输入之前,加载指定的标记. 输入文件必须
存在,必须可读,并且必须使用与 --export-marks 生成的格式相同的格式。
任何已标记的提交将不会再次导出。 如果后端
使用类似的 --import-marks 文件,这允许增量双向
通过在运行中保持标记相同来导出存储库。
--假缺失标签
一些旧的存储库有没有标签的标签。 快速导入协议很漂亮
对此很严格,并不允许这样做。 所以伪造一个标记器以便能够快速导入
输出。
--使用完成功能
用一个开始流 特集 完成 节,并用一个终止它 完成 命令。
- 没有数据
跳过 blob 对象的输出,而是通过其原始 SHA-1 哈希引用 blob。
这在重写存储库的目录结构或历史记录时很有用
无需触及单个文件的内容。 请注意,结果流可以
只能由已经包含必要对象的存储库使用。
--全树
此选项将导致快速导出为每个提交发出“deleteall”指令
后跟提交中所有文件的完整列表(而不是仅列出
与提交的第一个父文件不同的文件)。
--匿名
将存储库的内容匿名化,同时仍保持形状
历史和存储的树。 请参阅下面的匿名部分。
--参考规范
将指定的 refspec 应用于每个导出的 ref。 可以指定多个。
[ ...]
参数列表,可接受 混帐 rev解析 和 混帐 版本列表, 指定
要导出的特定对象和引用。 例如,master~10..master 导致
要导出的当前主引用以及自第 10 次以来添加的所有对象
祖先提交。
示例
$ git 快速导出 --all | (cd /empty/repository && git fast-import)
这将导出整个存储库并将其导入现有的空存储库。
除了重新编码不在 UTF-8 中的提交外,它将是一对一的镜像。
$ git 快速导出大师~5..master |
sed "s|refs/heads/master|refs/heads/other|" |
git 快速导入
这使得一个名为的新分支 other 在 大师~5..大师 (即如果 主 有线性
历史,它将需要最后 5 次提交)。
请注意,这假设没有引用的 blob 和提交消息
修订范围包含字符串 裁判/负责人/大师.
匿名化
如果给出了 --anonymize 选项,git 将尝试删除所有识别信息
来自存储库,同时仍然保留足够的原始树和历史模式
重现一些错误。 目标是在私有存储库中发现一个 git 错误
将保留在匿名存储库中,后者可以与 git 共享
开发人员帮助解决该错误。
使用此选项,git 将替换所有引用名称、路径、blob 内容、提交和标记
带有匿名数据的输出中的消息、姓名和电子邮件地址。 两种情况
相同的字符串将被等价地替换(例如,具有相同作者的两次提交将
在输出中具有相同的匿名作者,但与原始作者没有相似之处
作者字符串)。 提交、分支和标签之间的关系也被保留
作为提交时间戳(但提交消息和引用名称与
原件)。 树的相对构成被保留(例如,如果你有一个根树
有 10 个文件和 3 个树,输出也是如此),但它们的名称和内容
文件将被替换。
如果你认为你发现了一个 git bug,你可以从导出一个匿名的流开始
整个存储库:
$ git fast-export --anonymize --all >anon-stream
然后确认错误仍然存在于从该流创建的存储库中(许多错误
不会,因为它们确实取决于确切的存储库内容):
$ git init 匿名回购
$ cd 匿名回购
$ git fast-import <../anon-stream
$ ... 测试你的错误 ...
如果匿名存储库显示错误,则可能值得在匿名流中与
定期的错误报告。 请注意,匿名流压缩得很好,因此对其进行 gzip
被鼓励。 如果您想检查流以查看它不包含任何
私人数据,您可以在发送前直接阅读。 您可能还想尝试:
$ perl -pe 's/\d+/X/g'
它显示了所有唯一的行(数字转换为“X”,折叠“用户 0”,
“用户 1”等转换为“用户 X”)。 这产生的输出要小得多,而且通常很容易
以快速确认流中没有私有数据。
限制
建立 混帐 快速导入 不能标记树,你将无法导出 linux.git
完全存储库,因为它包含引用树而不是提交的标记。
使用 onworks.net 服务在线使用 git-fast-export