【问题标题】:Clone repository into GitHub将存储库克隆到 GitHub
【发布时间】:2012-04-27 07:50:51
【问题描述】:

我在本地使用 git 已经有一段时间了,并且有一个包含完整更改历史等的私有存储库。我现在想在 GitHub 上分享它,所以我需要从本地存储库克隆到新的 GitHub 存储库。我找不到任何方法来做到这一点。如何将我的所有历史记录上传到 GitHub?

【问题讨论】:

    标签: git github git-clone


    【解决方案1】:

    您不需要“克隆到 GitHub”。您只需在 GitHub 上创建一个存储库并将您的更改推送到那里:

    $ cd your_local_repo
    $ git remote add origin git@github.com:USERNAME/REPO_NAME.git
    $ git push origin master
    

    【讨论】:

    • 谢谢 - 这将保留我的提交历史记录?
    • 是的,来自本地 repo 的 master 分支的所有内容都将被推送到 GitHub one。如果你有一些标签,你还想通过git push --tags推送它们。
    • 我要补充一点,对于第一次推送,--mirror-u 可能是一个明智的选择:git push --mirror -u origin
    • “官方”主题文章:help.github.com/articles/…
    • 据我了解,clone 复制存储库中的所有分支,而不仅仅是 master 分支。如果这是真的,那么按照答案中的说明进行操作似乎与从远程位置运行 clone 产生的效果不同。有没有办法修改指令,使其与从远程位置运行clone 具有更接近相同的效果?
    【解决方案2】:

    您只想在 GitHub 上的帐户上创建一个新存储库。假设您的帐户名称是 CraigH,并且您称您为新存储库 NewRepo(我知道这很有想象力),您只需(假设您在系统上正确设置了 GitHub 密钥):

    1. 将远程添加到本地存储库
      • git remote add origin git@github.com:CraigH/NewRepo.git
    2. 将您当前的历史记录推送到 GitHub
      • git push --set-upstream origin master

    从那时起,您在 master 分支中的历史记录在 GitHub 的 master 分支中。

    【讨论】:

      【解决方案3】:

      您可以通过推送到 GitHub 上的远程仓库来完成此操作。你应该得到整个历史和一切。

      【讨论】: