Git push --all vs --mirror

Dan*_*ani 7 git push github

git push --all和之间有什么区别git push --mirror

我只知道这个:

  • 使用已删除的本地分支,--all不会推送它--mirror.

这是对的?

还有其他差异吗?

tor*_*rek 11

正如文档所述:

- 所有

    推动所有分支(即参考下refs/heads/); 不能与其他<refspec>一起使用.

- 镜子

    ...指定下的所有参考文献refs/(包括但不限于refs/heads/,refs/remotes/refs/tags/)被镜像...

所以一个,如果不是,关键的区别在于一个手段refs/heads/*,一个手段refs/*.该refs/heads/*名称是分支名称.任何内容refs/remotes/都是远程跟踪名称,其中任何内容refs/tags/都是标记名称.其他值得注意的名称空间包括refs/notes/,refs/replace/和奇异refs/stash.

--mirror选项接着提到:

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

因此--mirror有效地暗示了--force--prune; --all才不是.你可以,但是,添加--force和/或--prunegit push --all,如果你喜欢.

其他 Git决定是否服从礼貌请求(没有发送的请求--force)或命令(--force)来更改其引用.

使用已删除的本地分支,--all不会推送它--mirror.

这是--prune选项的结果:告诉你的Git使用--prune手段"要求他们删除名字空间中不属于我的名字".