Git push --all vs --mirror

问题描述 投票:5回答:1

git push --allgit push --mirror有什么区别?

我只知道这个:

  • 随着删除的本地分支,--all不推动它和--mirror

这是对的?

还有其他差异吗?

git github push
1个回答
8
投票

正如它在the documentation中所说:

- 所有

    Push all branches (i.e. refs under refs/heads/); cannot be used with other .

- 镜子

    ... specifies that all refs under refs/ (which includes but is not limited to refs/heads/, refs/remotes/, and refs/tags/) be mirrored ...

因此,如果不是,关键的区别是,一个意味着refs/heads/*,一个意味着refs/*refs/heads/*名称是分支名称。 refs/remotes/中的任何内容都是远程跟踪名称,refs/tags/中的任何内容都是标记名称。其他值得注意的名称空间包括refs/notes/refs/replace/和奇异的refs/stash

--mirror选项接着提到:

本地更新的引​​用将在远程端强制更新,删除的引用将从远程端删除。

因此,--mirror有效地暗示了--force--prune; --all没有。但是,如果您愿意,可以将--force和/或--prune添加到git push --all

由其他Git决定是否遵守礼貌请求(不使用--force发送的请求)或命令(--force)来更改其引用。

随着删除的本地分支,--all不推动它和--mirror

这是--prune选项的结果:告诉你的Git使用--prune意味着“要求他们删除名字空间中不属于我的名字”。

© www.soinside.com 2019 - 2024. All rights reserved.