时间:2010-07-26 07:56:22

标签: git backup

7 个答案:

答案 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>

来自http://www.garron.me/en/bits/backup-git-bare-repo.html

答案 5 :(得分:1)

答案 6 :(得分:0)