我在玩 Git,看看我的想法是否可行(本质上是跟踪带有前缀标签的许多文件的版本号)。我设置了一个脚本来生成大量文件和版本标签,这给我留下了大约 45000 个标签。我们将 Atlassian Stash 用于我们的 Git 服务器,因此我将提交推送到那里的远程存储库没有问题,但是当我推送标签时,出现以下错误。
% git push --tags
fatal: The remote end hung up unexpectedly
如果我手动推送标签,git push tagname-1.0
我可以很好地推送它(尽管这需要一点时间)。我目前正在使用 bash 循环推送我的所有标签,但此时它已经运行了超过 24 小时。
使用和/或推送大量标签是否存在一些性能问题或限制?我们的配置是否有问题可能导致这种情况?
编辑 1:我刚刚创建了一个本地裸 git 存储库并将我的多标签存储库推送到它。然后我尝试推送标签并得到相同的远程挂断错误,所以我认为这不是 Stash 的问题。
编辑 2:作为临时解决方法,我可以使用以下命令推送所有分支,一次 100 个:
git tag | xargs -n 100 git push origin
我只是尝试进行本地克隆,以查看是否将所有标签作为克隆的一部分,并且花费了非常长的时间(大约一个小时),但所有标签似乎都已正确传输。我尝试第二次克隆到一个新目录,它更快,不到一分钟。也许它重用了一个包文件,或者只是在我的机器上有更多可用资源。