11

有没有人尝试或想出如何将 gitorious repo 导入 github?我已经在使用 github 并且想看看是否有办法从我想要遵循的 gitorious repo 中提取到 github。

4

4 回答 4

25

这与在 Github 上创建存储库的常规方法有何不同?

  1. 从 gitorious 克隆存储库
  2. 在 github 上创建一个新的存储库
  3. 将仓库推送到 github

Github 并不关心存储库的来源,它只接受你推送的任何内容。

于 2009-07-01T02:40:33.440 回答
7

在 GitHub 上创建新存储库后,该网站会立即为您提供 3 个优雅的个性化指令集。3个不同的选项是:

  1. 开始着手一个全新的项目
  2. 推送现有的 Git 存储库- 这是您想要的
  3. 推送现有的 SVN 存储库

如果我的用户名是user1并且新的 repo 被称为project1,它会这样说:

现有的 Git 存储库?

cd existing_git_repo
git remote add origin git@github.com:user1/project1.git
git push -u origin master
于 2011-03-16T00:46:35.720 回答
6

已经给出的答案将只是 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上面给出的命令切换任何本地存储库。

于 2013-02-13T16:29:17.247 回答
2

前面的答案是正确的,但这里是一步一步的过程,包括将本地副本与 Gitorious 断开链接的缺失步骤;没有它,fatal: remote origin already exists当您尝试将 Github 添加为新来源时,您会收到错误消息。

  1. 在 Github 上创建空目标仓库
  2. 从 Gitorious 克隆 repo 到本地
  3. 删除 Gitorious 作为原点
  4. 将 Github 添加为新来源
  5. 推送到 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 步之后为您提供了最后两个命令。

于 2012-08-09T07:02:25.017 回答