如何git push到Github的main分支

Github上新建的仓库只有一个main分支,也是默认分支。新创建完的仓库会有一个页面,引导用户将本地文件或仓库push到Github上。

如果是正在开发中的项目,已经有一些本地文件,需要本地初始化仓库并push到远程,按照引导页面提交会遇到一个错误,导致push失败。

$ git push -u origin main
To https://github.com/xiaoheige/VRTemplateUE53.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'https://github.com/xiaoheige/VRTemplateUE53.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这时需要先将远程main分支合并到本地,因为在GitHub创建仓库的时候,创建了 .gitignore 文件,已经产生了一条备注为“Initial commit”的commit。

$ git merge remotes/origin/main
fatal: refusing to merge unrelated histories

会有一个fatal错误,拒绝合并不相关的历史,可以添加 --allow-unrelated-histories 参数忽略错误,继续合并。

$ git merge remotes/origin/main --allow-unrelated-histories 

自动进入文本编辑器,:q 退出即可完成合并。

然后执行push即可。

$ git push -u origin main

我在这一步执行push的时候,因为网络原因失败了,有一个很隐蔽的报错,没看到,到Github上怎么刷新也看不到提交的内容。

后来发现错误重新执行push成功了。