Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-10-12. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

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

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

从 Mercurial 导入项目

  1. SSH into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative 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 into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative 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 into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative 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

延伸阅读