是否可以"取消链接"从标签提交?
我想要的是,我想删除其中包含标签的binary
分支,如下所示;
master ----A----B----C----D
binary ----V----W----X----Y
\ \ \ \
tag1 tag2 tag3 tag4
我试图通过$ git push origin :binary
将其删除。
此命令从远程服务器删除binary
分支,但存储库大小与之前相同。
我认为这是因为标签附加到V W X Y
提交。
如何在不删除标签的情况下完全删除binary
分支及其内容?
答案 0 :(得分:3)
答案是否定的(如果您已经推送了标签)和"是的,排序等等#34; (如果这些标记仅存在于本地存储库中)。
Git标签只是&#34;指针&#34;提交。换句话说 - 标签的内容是某个提交的ID(请$ cat .git/refs/<path to some tag>
为自己查看)。您无法更改它 - 您可以做的最好是删除标记并创建新标记。
如果您推送了标签,那么它已经结束了 - 您无法再删除它们(您可以将它们从远程仓库中删除,但不会将其从用户&#39;存储库中删除)。
答案 1 :(得分:2)
标签附加到提交。删除提交而不删除附加到它的标记是没有意义的。假设有可能,标签仍然是孤儿和无用的。
但是存储库大小与以前相同。
假设您删除的提交未从其他对象(标记,分支,合并提交)引用,并且可以安全地删除其内容,则存储库大小不会立即更改。你必须强制它运行它的垃圾收集例程。
对于本地存储库,可以通过运行git gc
来完成。我不知道如何在远程存储库上触发垃圾收集。