2013-05-30 45 views
5

Git的默认行为是而不是将标签从本地存储库推送到关联的远程存储库。在this answer中解释了如何为单个存储库更改此行为。为什么git默认不推送标签?

我的问题是为什么这是Git的设计行为?特别是设置自动推送标签有哪些缺点?

+1

'tag'是存储库的**快照**。我的猜测是,它不应该在推动时更新,除非你明确希望它被发布。 – yuwang

+0

另请参阅http://stackoverflow.com/a/2988182/654952 – yuwang

+0

@yuwang:我已经链接到这个答案。这里有一条评论提出了同样的问题,但仍然没有答案...... – Dror

回答

5

如果你考虑任何大型项目的标签(kernel linuxgit itself ......),你会看到在数百标签。

一个分布式VCS是所有关于publication:你想推什么呢?
一切?每时每刻?

推送全部标签可能污染upstream repo的标签空间。

随着目前的行为,您可以控制您发布到上游回购站的内容,供其他人查看。


注意,因为git的1.8.3(2013年4月),该git push --follow-tags可以帮你推提交及其相关标签一个命令。

请参阅“Push git commits & tags simultaneously”。