可以/我应该分叉我自己的github回购?

mat*_*att 20 git github

我的github repo叫做Programming-iOS-4-Book-Examples,因为它是我的书"Programming iOS 4"中的示例代码.现在我已经写了一本新版本的书,改名为"编程iOS 5".我需要使用旧名称保留旧的仓库,因为网络上有链接,有人可能需要旧代码.但是现在我还想要一个新的名称,包括为iOS 5重新编写的相同示例(还有一些新的名称)编程的iOS-5-Book-Examples.

当然,我看到了这个:我如何分叉我自己的GitHub存储库?但建议是使用分支机构.这对我不起作用.我不想使用分支,因为这样做的目的是为了给回购提供一个我可以链接的名称.我希望公众在iOS 4 repo中找到我的iOS 4示例,在iOS 5 repo中找到我的iOS 5示例.

这似乎是一个完美的叉子使用,但是当我按下Fork按钮时没有任何反应; 我显然不允许分叉我自己的回购.

当然我可以把它作为一个全新的回购,但这意味着分别上传所有资源,这是不幸的,因为iOS 4回购中的一切都已经存在.我还是必须这样做吗?

cor*_*ard 20

你不能拥有两个具有相同名称的存储库,并且在Github上分叉会自动传输名称,这就是阻止它工作的原因.听起来您可以通过在本地添加分支,然后使用新名称推送到新的Github存储库来获得良好的服务.您甚至可以将Github repo显示master为分支:

git clone git://github.com/you/repo.git
git checkout -b new_book
[ create new repo on Github ]
git remote add new_origin git://github.com/you/repo.git
git push new_origin new_book:master
Run Code Online (Sandbox Code Playgroud)

只需使用更合适的名字,你就是金色的.您可以合并更新共享的例子,添加额外的例子新书代码,您只需按下这两个originnew_origin(使用上面的示例名称),当您进行更改.


Nic*_*ick 5

我知道这已经过时了,但最近我遇到了同样的问题.对我有用的是以下内容:

  1. 在github上创建一个new_repo
  2. git clone new_repo
  3. cd new_repo
  4. git remote add上游old_repo.git
  5. git pull上游大师
  6. git push origin master

我从这里得到了以上所有内容.


mat*_*att 2

最后,这就是我所做的:

  1. 我重命名了现有的存储库。这很好用(谢谢 github,让这一切变得如此简单)。不要忘记编辑你自己的 git repo 的config文件,以保持你自己的 master 分支和 github repo 的 master 分支之间的远程分支关系。

  2. 我使用旧存储库的名称创建了一个新存储库,其中仅包含提供现有存储库的新 URL 的README.md

因此,我最终没有将 iOS 4 书籍内容与 iOS 5 书籍内容分开。相反,我重新安排了原始存储库的结构,并给了它一个更通用的名称,而不是专门与 iOS 4 绑定。并且旧存储库的现有链接不会中断,因为该 URL 上有一个占位符存储库,指向新存储库。