git,push --mirror,恢复已删除的分支

时间:2014-05-15 09:07:51

标签: git github fork

我使用本指南在GitHub上创建了公共仓库的私有分支 https://help.github.com/articles/duplicating-a-repository

git clone --mirror <path-to-some-public-repo>
cd ./some-public-repo.git
git remote rm origin
git remote add upstream <path-to-some-public-repo>
git remote add privatefork <path-to-your-private-fork>
git push --mirror privatefork

我做了一些工作,创建了自己的分支,将分支推送到私有分支。然后我从上游获取更新到我的私人福利

git fetch -p upstream
git push --mirror privatefork

我的新分支在更新期间被删除了。仍然在回购中,但分支已被删除。 当然我可以再次创建分支,但这是一种错误的方式。

如何更新私有分叉并保留新分支?

1 个答案:

答案 0 :(得分:1)

我猜,因为你没有将你的新分支发布到被调用的git fetch -p的“上游”:

  

“[r]摘录[取出后]遥控器上不再存在的任何远程跟踪参考。”
   - git-fetch(1)手册页

换句话说,您可以根据需要推送和更改(在“privatefork”上)上游中的每个fetch -p,您将删除更改。

除此之外:使用--mirror--prune - 关于GitHub的整篇帮助文章 - 被提及创建存储库的1:1副本/备份。如果您打算使用存储库,请保留选项并执行“正常”分叉。