如何将本地的git仓库迁移至GitHub?

6
我有一个包含Github远程库的git仓库。
随后,我删除了在Github上的这一仓库。
现在,我想要重新创建Github上的git仓库,并且希望能保留之前的完整历史记录(包括分支、提交和合并历史记录)。
请问该如何操作呢?
我试过通过Web UI创建新仓库、克隆仓库、逐个复制文件等方式,但都太耗时。

3
在GitHub上创建一个仓库后,你应该使用 "git remote add origin" 命令。然后,你就可以将代码推送到GitHub上。 - lbueker
只需将本地文件发布到GitHub即可。 - Alexan
2个回答

13
  1. 通过web界面创建新的github存储库,例如https://github.com/bfg/frobnozzel.git

  2. 在本地创建一个裸clone(不带工作目录)的仓库(在此例中为/tmp/new-frobnozzel.git):

  3. git clone --bare /path/to/local/repository /tmp/new-frobnozzel.git
    
  4. 在新创建的 bare-close 中,将 remote 改为新的 GitHub 仓库:

    cd /tmp/new-frobnozzel.git
    git remote set-url origin git@github.com:bfg/frobnozzel.git
    
  5. 将整个代码库推送到新的远程仓库:

    cd /tmp/new-frobnozzel.git
    git push --mirror origin
    

顺便提一下,还有一些Github文档涵盖了这个内容。


3
答案很简单:在github上创建一个新的存储库(与原来的同名),然后将本地存储库推送到远程存储库(应该是正确的)。
确保你把所有东西都推送了。
最初的回答

不再那么简单了:GitHub 的默认分支已更名为“main”,而许多旧存储库仍具有“master”默认分支。 - jasie
2
什么问题?只需创建一个没有任何内容(无README,无LICENSE等)的存储库。这不会创建任何分支。 - dan1st
那么,或者在创建后重命名主分支。 - MS Berends
这要么需要强制推送,要么会破坏现有的历史记录(如果GitHub和本地存在不同的分支)。 - dan1st

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接