【发布时间】:2010-11-07 05:02:39
【问题描述】:
有没有人尝试或想出如何将一个 gitorious repo 导入 github?我已经在使用 github,想看看是否有办法从我想要遵循的 gitorious repo 中提取到 github。
【问题讨论】:
有没有人尝试或想出如何将一个 gitorious repo 导入 github?我已经在使用 github,想看看是否有办法从我想要遵循的 gitorious repo 中提取到 github。
【问题讨论】:
这与在 Github 上创建存储库的常规方法有何不同?
Github 并不关心存储库的来源,它只接受你推送给它的任何内容。
【讨论】:
在 GitHub 上创建新存储库后,该网站会立即为您提供 3 个优雅的个性化指令集。 3 个不同的选项是:
如果我的用户名是 user1 并且新的 repo 名为 project1,它会这样写:
cd existing_git_repo
git remote add origin git@github.com:user1/project1.git
git push -u origin master
【讨论】:
已经给出的答案将只是 import master - 如果你想导入整个 repo,包括所有分支、标签等,你需要执行以下操作:
使用 --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 断开链接的缺失步骤;如果没有它,当您尝试将 Github 添加为新源时,您将收到错误 fatal: remote origin already exists。
命令:
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 步之后为您提供的。
【讨论】: