繁体   English   中英

如何使用Git bundle create仅抓取前几次提交

[英]how to grab only first few commits with Git bundle create

我有一个git repo,我想使用git bundle命令来仅抓取一部分repo。

可以说此仓库中有10个提交,但我只想抓取前3个? 也许以后再抢下3个? 等等

我如何利用git bundle命令来做到这一点?

请随意填写我可能未提供的其他详细信息,这可能对您有用。

更新 -包含有关捆绑软件限制的信息。 tl; dr-您必须在套件的头部安装一个参考

在包中包含的提交使用你会使用指定要在看什么相同的语法指定log命令(等等),以及您必须使用命名裁判(分公司或标签)的异常,表明又该被包括在内。 因此,对于您的示例(将第一个3次提交捆绑在一起,然后从10个提交的存储库中捆绑下一个3次提交):

您有一个回购

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必须是指向commit F的引用(标记或分支)。

只要您希望包括一次提交(在本例中 F )可以到达的内容,而另一次提交( C )可以到达的内容,则可以使用此语法。 等效命令是

git bundle create d_to_f.bundle ^C F

其示出了一个更一般的语法,其中,可以很容易地添加到包含或排除多个的提交。

你注意到在评论认为,你能与标签这项工作,而不是SHA ID的。 我已经忘记了-但有人以一种不幸-不清楚的编辑形式向我指出-捆绑包不能包含悬空的提交。 捆绑包中的每个提交都必须可以从捆绑包中的引用访问。 我想这可以防止在将捆绑软件应用于另一个仓库时,创建难以访问的悬挂对象,并且无论如何都可以立即使用gc。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM