我们需要将Git Repository从一个网络导入到另一个网络。对于安全性提升,它必须作为文本文件传递,它表示内部文件的可读版本(存储库中的所有Blob,或者至少包含两个Blob之间的所有差异)。从.git
目录创建tar并不好(安全扫描不可读),也不是git bundle
格式。Git - 从补丁文件重建/克隆
这个应用程序是补丁文件(安全扫描知道要在补丁的base64中处理二进制文件)。它适用于线性回购,但我们也需要合并提交。我们想过脚本会在源做:git log -p -m --parents --first-parent > file
,并在DEST将解析该文件,并会:
- 应用它承诺通过
git am
- 承诺在父母一方的每个分支(第二个孩子)将创建分支(名称
branch<hash-of-first-commit>
) - 每个合并会做:
git merge <branch-name> --no-commit -s ours
,比第一父的diffgit apply
,比git commit ...
是后W只需要将分支重命名为实名,然后完成。我没有看到缺陷,但尚未实施。
问题:
- 是否有存在的,为此,工作液(脚本工具)?
- 如果没有 - 疗法是我描述,这将使它不准确反映它们之间的正确连接的提交过程中的任何缺陷(我们不必须保持原有的提交哈希)?