如何使用 Git bundle create 仅获取前几个提交
how to grab only first few commits with Git bundle create
我有一个 git 存储库,我想使用 git 捆绑命令只获取存储库的一部分。
假设这个 repo 中有 10 个提交,但我只想获取前 3 个?也许稍后再拿下 3 个?等等
如何利用 git 捆绑命令来执行此操作?
请随意填写我可能没有提供的其他详细信息,这可能对您有用。
UPDATE - 包含有关捆绑包限制的信息。 tl;dr - 你必须在 bundle 的头部有一个 ref
要包含在包中的提交使用与指定要在 log
命令(以及其他)中看到的内容相同的语法来指定,但必须使用命名 refs (分支或标签)以指示应包含的内容。因此,对于您的示例(捆绑第一个 3 个提交,然后是下一个 3 个,来自具有 10 个提交的回购):
你有一个仓库
A -- B -- C -- D -- E -- F -- G -- H -- I -- J <--(master)
那你说
git bundle create a_to_c.bundle C
其中 C
指向 C
的引用(分支或标记)。后来
git bundle create d_to_f.bundle C..F
在这种情况下,C
可能是提交 C
的 SHA ID(或该 ID 的明确前缀),或者它可能仍然是 re;但 F
必须是指向提交 F
.
的引用(标记或分支)
只要您想 包括 一次提交可达到的内容(本例中为F
),此语法在任何时候都有效[=45=除外] ] 可以从另一个 (C
) 访问什么。等效命令是
git bundle create d_to_f.bundle ^C F
它显示了更通用的语法,您可以在其中轻松添加要包含或排除的多个提交。
您在评论中指出,您可以使用标签而不是 SHA ID 使其工作。我忘记的是——但有人以不幸的是——不清楚的编辑形式向我指出——是一个包不能包含悬空提交。 bundle 中的每个提交都必须可以从 bundle 中的 ref 访问。我想这可以防止创建难以访问的悬垂对象 - 并且在任何情况下都会立即符合 gc 条件 - 当将捆绑包应用到另一个 repo 时。
我有一个 git 存储库,我想使用 git 捆绑命令只获取存储库的一部分。
假设这个 repo 中有 10 个提交,但我只想获取前 3 个?也许稍后再拿下 3 个?等等
如何利用 git 捆绑命令来执行此操作?
请随意填写我可能没有提供的其他详细信息,这可能对您有用。
UPDATE - 包含有关捆绑包限制的信息。 tl;dr - 你必须在 bundle 的头部有一个 ref
要包含在包中的提交使用与指定要在 log
命令(以及其他)中看到的内容相同的语法来指定,但必须使用命名 refs (分支或标签)以指示应包含的内容。因此,对于您的示例(捆绑第一个 3 个提交,然后是下一个 3 个,来自具有 10 个提交的回购):
你有一个仓库
A -- B -- C -- D -- E -- F -- G -- H -- I -- J <--(master)
那你说
git bundle create a_to_c.bundle C
其中 C
指向 C
的引用(分支或标记)。后来
git bundle create d_to_f.bundle C..F
在这种情况下,C
可能是提交 C
的 SHA ID(或该 ID 的明确前缀),或者它可能仍然是 re;但 F
必须是指向提交 F
.
只要您想 包括 一次提交可达到的内容(本例中为F
),此语法在任何时候都有效[=45=除外] ] 可以从另一个 (C
) 访问什么。等效命令是
git bundle create d_to_f.bundle ^C F
它显示了更通用的语法,您可以在其中轻松添加要包含或排除的多个提交。
您在评论中指出,您可以使用标签而不是 SHA ID 使其工作。我忘记的是——但有人以不幸的是——不清楚的编辑形式向我指出——是一个包不能包含悬空提交。 bundle 中的每个提交都必须可以从 bundle 中的 ref 访问。我想这可以防止创建难以访问的悬垂对象 - 并且在任何情况下都会立即符合 gc 条件 - 当将捆绑包应用到另一个 repo 时。