此版本的 GitHub Enterprise 已停止服务 2021-09-23. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

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

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

从 Mercurial 导入项目

  1. SSH 连接到 您的 GitHub Enterprise Server 实例。 更多信息请参阅“访问管理 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

    • 新电子邮件地址:[email protected]

    • 新名称:The Octocat

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

      octocat@111111-2222-3333-4444-55555555555, ,[email protected],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 连接到 您的 GitHub Enterprise Server 实例。 更多信息请参阅“访问管理 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

    • 新电子邮件地址:[email protected]

    • 新名称:The Octocat

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

      octocat@111111-2222-3333-4444-55555555555, ,[email protected],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 连接到 您的 GitHub Enterprise Server 实例。 更多信息请参阅“访问管理 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

    • 新电子邮件地址:[email protected]

    • 新名称:The Octocat

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

      octocat@111111-2222-3333-4444-55555555555, ,[email protected],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

延伸阅读