跳到主要内容

使用命令行导入外部 Git 仓库

如果您的 Git 仓库存储在无法从公共互联网访问的代码托管服务上,您可以使用命令行上的 Git 导入该仓库。

开始之前,请确保您知道:

  • 您的 GitHub 用户名
  • 外部仓库的克隆 URL,例如 `https://external-host.com/user/repo.git` 或 `git://external-host.com/user/repo.git`(可能在 `external-host.com` 域名之前带有 `user@`)

出于演示目的,我们将使用:

  • 名为 **extuser** 的外部帐户
  • 名为 `https://external-host.com` 的外部 Git 托管服务
  • 名为 **ghuser** 的 GitHub 个人帐户
  • GitHub.com 上名为 **repo.git** 的仓库
  1. 在 GitHub 上创建一个新的仓库。您将把您的外部 Git 仓库导入到这个新的仓库中。

  2. 在命令行上,使用外部克隆 URL 创建外部仓库的“裸”克隆。这会创建一个完整的数据副本,但没有用于编辑文件的 working directory,并确保所有旧数据的干净、新鲜导出。

    $ git clone --bare https://external-host.com/EXTUSER/REPO.git
    # Makes a bare clone of the external repository in a local directory
    
  3. 使用“镜像”选项将本地克隆的仓库推送到 GitHub,这将确保所有引用(例如分支和标签)都被复制到导入的仓库中。

    $ cd REPO.git
    $ git push --mirror https://github.com/USER/REPO.git
    # Pushes the mirror to the new repository on GitHub.com
    
  4. 删除临时本地仓库。

    cd ..
    rm -rf REPO.git
    

如果您要导入的仓库包含大型文件,您可能会遇到警告或错误。有关大型文件以及如何管理它们的更多信息,请参阅“GitHub 上的大型文件”。

进一步阅读