有没有人尝试或想出如何将 gitorious repo 导入 github?我已经在使用 github 并且想看看是否有办法从我想要遵循的 gitorious repo 中提取到 github。
4 回答
这与在 Github 上创建存储库的常规方法有何不同?
- 从 gitorious 克隆存储库
- 在 github 上创建一个新的存储库
- 将仓库推送到 github
Github 并不关心存储库的来源,它只接受你推送的任何内容。
在 GitHub 上创建新存储库后,该网站会立即为您提供 3 个优雅的个性化指令集。3个不同的选项是:
- 开始着手一个全新的项目
- 推送现有的 Git 存储库- 这是您想要的
- 推送现有的 SVN 存储库
如果我的用户名是user1并且新的 repo 被称为project1,它会这样说:
现有的 Git 存储库?
cd existing_git_repo
git remote add origin git@github.com:user1/project1.git
git push -u origin master
已经给出的答案将只是 import master - 如果您想导入整个 repo,包括所有分支、标签等,您需要执行以下操作:
- 创建一个空白的 github 存储库
使用 --bare 标志克隆 gitorious repo - 这会保留所有分支/标签并且不会创建工作副本:
$ git clone --bare git://gitorious.org/USER/REPO.git
将目录更改为本地仓库:
$ cd therepo.git
使用 --mirror 标志将 repo 推送到 github - 这会复制所有分支、标签、历史记录等:
$ git push --mirror git@github.com:USER/REPO.git
删除本地副本 - 你不再需要它,它对任何东西都没有多大用处
$ cd .. && rm -rf therepo.git
完成此操作后,您可以使用git remote rm/add
上面给出的命令切换任何本地存储库。
前面的答案是正确的,但这里是一步一步的过程,包括将本地副本与 Gitorious 断开链接的缺失步骤;没有它,fatal: remote origin already exists
当您尝试将 Github 添加为新来源时,您会收到错误消息。
- 在 Github 上创建空目标仓库
- 从 Gitorious 克隆 repo 到本地
- 删除 Gitorious 作为原点
- 将 Github 添加为新来源
- 推送到 Github
命令:
git clone git://gitorious.org/USER/REPO.git
cd REPO
git remote rm origin
git remote add origin https://github.com/USER/REPO.git
git push --mirror https://github.com/USER/REPO.git
您显然需要替换 USER 和 REPO,并且在创建 Github 存储库时的第 1 步之后为您提供了最后两个命令。