Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

从第三方版本控制系统导入数据

使用工具的 git-import 套件,您可以将数据从 Subversion、Mercurial 和 Team Foundation Version Control 导入 GitHub Enterprise Server 上的 Git 仓库。

从 Mercurial 导入项目

  1. 通过 SSH 连接到 your GitHub Enterprise Server instance。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 有关 SSH 访问的详细信息,请参阅“访问管理 shell (SSH)”。

    $ ssh -p 122 admin@HOSTNAME
  2. 使用以下命令对项目进行原始克隆,并指定源项目的 URL 和临时仓库的路径:

    $ git-import-hg-raw HG-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
  3. 查看 /PATH/REPO-NAME.git/git-import/raw-authors.csv 中的逗号分隔 (CSV) 文件。 它应包含以下三列:

    • ID:存储在原始存储库中的作者,后接唯一识别符。
    • NAME:原始存储库中存储的作者

    要将作者从原始存储库映射到电子邮件地址和名称,请使用 ID,(ignored),GIT_EMAIL,GIT_NAME 列新建一个 CSV 文件,将用“ID”表示的任何作者信息替换为“GIT_EMAIL”和“GIT_NAME”。

    示例:

    • 原始作者 ID:octocat@111111-2222-3333-4444-55555555555

    • 新电子邮件地址:octocat@github.com

    • 新名称:The Octocat

      要将原始作者映射到新 Git 用户,CSV 文件应包含行:

      octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. 使用 CSV 文件重写作者和分支:

    $ git-import-rewrite --flavor hg --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
  5. 如果你还没有,请在 GitHub Enterprise Server 上创建一个新的空存储库

  6. 将当前工作目录更改为您的本地仓库。

  7. 将导入的仓库推送到 GitHub Enterprise Server:

    $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE

从 Subversion 导入项目

  1. 通过 SSH 连接到 your GitHub Enterprise Server instance。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 有关 SSH 访问的详细信息,请参阅“访问管理 shell (SSH)”。

    $ ssh -p 122 admin@HOSTNAME
  2. 使用以下命令对项目进行原始克隆,并指定源项目的 URL 和临时仓库的路径:

    $ git-import-svn-raw SVN-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
  3. 查看 /PATH/REPO-NAME.git/git-import/raw-authors.csv 中的逗号分隔 (CSV) 文件。 它应包含以下三列:

    • ID:存储在原始存储库中的作者,后接唯一识别符。
    • NAME:原始存储库中存储的作者

    要将作者从原始存储库映射到电子邮件地址和名称,请使用 ID,(ignored),GIT_EMAIL,GIT_NAME 列新建一个 CSV 文件,将用“ID”表示的任何作者信息替换为“GIT_EMAIL”和“GIT_NAME”。

    示例:

    • 原始作者 ID:octocat@111111-2222-3333-4444-55555555555

    • 新电子邮件地址:octocat@github.com

    • 新名称:The Octocat

      要将原始作者映射到新 Git 用户,CSV 文件应包含行:

      octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. 使用 CSV 文件重写作者和分支:

    $ git-import-rewrite --flavor svn --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
  5. 如果你还没有,请在 GitHub Enterprise Server 上创建一个新的空存储库

  6. 将当前工作目录更改为您的本地仓库。

  7. 将导入的仓库推送到 GitHub Enterprise Server:

    $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE

从 Team Foundation Version Control 导入项目

  1. 通过 SSH 连接到 your GitHub Enterprise Server instance。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 有关 SSH 访问的详细信息,请参阅“访问管理 shell (SSH)”。

    $ ssh -p 122 admin@HOSTNAME
  2. 使用以下命令对项目进行原始克隆,并指定源项目的 URL 和临时仓库的路径:

    $ git-import-tfs-raw TEAM-FOUNDATION-CLONE-URL /PATH/REPO-NAME.git
    # Creates a new repository with one or more Git refs in "refs/import/" in the specified path.
  3. 查看 /PATH/REPO-NAME.git/git-import/raw-authors.csv 中的逗号分隔 (CSV) 文件。 它应包含以下三列:

    • ID:存储在原始存储库中的作者,后接唯一识别符。
    • NAME:原始存储库中存储的作者

    要将作者从原始存储库映射到电子邮件地址和名称,请使用 ID,(ignored),GIT_EMAIL,GIT_NAME 列新建一个 CSV 文件,将用“ID”表示的任何作者信息替换为“GIT_EMAIL”和“GIT_NAME”。

    示例:

    • 原始作者 ID:octocat@111111-2222-3333-4444-55555555555

    • 新电子邮件地址:octocat@github.com

    • 新名称:The Octocat

      要将原始作者映射到新 Git 用户,CSV 文件应包含行:

      octocat@111111-2222-3333-4444-55555555555, ,octocat@github.com,The Octocat

  4. 使用 CSV 文件重写作者和分支:

    $ git-import-rewrite --flavor tfs --authors /PATH/AUTHORS-MAP-FILE.csv /PATH/REPO-NAME.git
  5. 如果你还没有,请在 GitHub Enterprise Server 上创建一个新的空存储库

  6. 将当前工作目录更改为您的本地仓库。

  7. 将导入的仓库推送到 GitHub Enterprise Server:

    $ git push --mirror PUSH-URL-ON-GITHUB-ENTERPRISE

延伸阅读