我有一个Git存储库 A ,包含25个分支和14个标记。 A 的完整大小为2.5 GB。
我只使用3-4个这些分支标签,并且真的想减小 A 的大小(我不关心其他分支的历史)。因此,我创建了一个新的远程 B ,并将所选的分支/标签推送到新的远程 B 。
但是,由于所有从那些选定的分支/标签可以访问的提交将在新的远程 B 中可用,我想我可能最终在新的存储库中具有相同的大小 B 再次?
如果我只推送选定的分支/标签而不是所有分支/标签,我还可以创建一个“损坏的”远程 B 吗?例如。我假设我推了一个标签 t0 ,但我还没有按下它创建的分支。
答案 0 :(得分:0)
但是,由于所有从那些选定的分支/标签可以访问的提交将在新的远程B中可用,我想我可能最终会在新的存储库B中再次拥有相同的大小?
是的,Git将在你的新存储库中包含许多blob,它需要代表你推送的所有分支。
如果我只推送选定的分支/标签而不是所有分支/标签,我还能创建一个“损坏的”远程B吗?例如。假设我推了一个标签t0,但我还没有按下它创建的分支。
这是不可能的,除非你在引擎盖下严重搞乱Git。当您将每个分支从repo A推送到repo B时,Git将自动处理其对象(树和blob)。因此它将“引入”完成操作所需的一切。