答案 0 :(得分:30)
你第二次看到某些东西的原因是--mirror
比你想象的要多一点。除了本地分支外,它还会推送远程分支,因为镜像意味着所有。因此,当您正常推送(或使用--mirror
)时,会推送mybranch
并更新origin/mybranch
以反映原点的新状态。当您使用--mirror
推送时,origin/mybranch
也会被推送。
这会导致你看到的陌生感,当你从那个遥控器拉出时,也会出现更奇怪的感觉;你会得到一个名为origin/origin/mybranch
等的分支。因此,通常最好使用--mirror
一次复制,并使用普通推送(可能使用--all
)进行正常使用。
要始终按下所有分支和标记,您可以像这样更新.git/config
:
[remote "origin"]
url = ...
fetch = ...
push = +refs/heads/*
push = +refs/tags/*
除了不删除源文件中不存在的分支或非快进更新之外,它将进行类似于镜像的正常推送。
答案 1 :(得分:22)
不幸的是,你没有得到推送的精确副本。你lose your stash。
答案 2 :(得分:7)
答案 3 :(得分:4)
答案 4 :(得分:4)
我的工作是:
设置回购:git clone --mirror user@server:/url-to-repo.git
然后,当您要从克隆位置刷新备份:git remote update
时。
这会备份所有分支,包括稍后添加的新分支,但值得注意的是,删除的分支不会从克隆中删除(对于备份来说这可能是一件好事)。 / p>
答案 5 :(得分:1)
答案 6 :(得分:0)