[英]I want to push my code to github on the main branch not on the master branch
我有一个包含代码文件的文件夹。 我想使用 git 将它们推送到 github。 这就是我所做的:
我在 github 上创建了一个新的存储库。
我在本地目录中初始化了 git 存储库。
我上演了我的文件。
我做出了最初的承诺。
然后我运行git remote add origin https://github.com/Lamphrangmi-Lamin/Bootcamp-Survey.git
它on branch master
说,但我希望它在“主”分支上。
之后我运行这个命令git push -u origin main
8.它向我展示了这个——
error: src refspec main does not match any
error: failed to push some refs to 'https://github.com/Lamphrangmi-Lamin/Bootcamp-Survey.git'
我想要的是将我的文件放在main
分支上。
您需要先创建main
分支:
git checkout -b main
git push -u origin main
然后,您可以删除旧的master
分支:
git branch -d master
将来,您可以配置 git 的默认分支的名称(假设您运行的是 2.28 或更高版本):
git config --global init.defaultBranch main
您还可以将名为master
的分支保留在本地 repo 中,但在远程端推送到main
:
git push -u origin master:main
- 我在 github 上创建了新的存储库。
当您使用 GitHub web 接口执行此操作时,您可以选择创建具有初始提交或根本没有提交的存储库。 如果您选择完全不提交,此存储库也将没有分支(这可能是您选择的设置,也可能是您应该选择的设置)。
- 然后我初始化了所有文件所在的目录。
我假设您的意思是您在笔记本电脑或其他(本地)计算机上运行git init
。 这将创建一个新的、完全空的存储库。 在这样的存储库中,不存在任何提交。
对于存在的分支,分支名称必须标识提交 hash ID。 由于(还)没有提交,因此没有分支名称。 这使这个新的存储库处于与 GitHub 存储库相同的情况。 这一切都很好。
但是请注意,尽管没有分支,但您仍然在分支上。 你只是在一个不存在的分支上。 此时,您可以选择或更改此分支的名称,使用git checkout -b
— 或者,假设您的本地 Git 版本至少为 2.23, git switch -c
为 -b。
如果此时您什么都不做,您所在的分支的名称(不存在的分支)就是您的 Git 默认内置的名称:可能是master
。 这不是问题; 这只是要记住的事情。
- 然后我上演了我想要的所有文件。
- 然后我使用提交消息进行了初始提交。
这也很好:进行第一次提交会导致 spring 的分支名称生成。 无论您在哪个不存在的分支上,您仍然在,但现在它存在。 分支名称现在标识了第一次提交。 分支现在存在,它的名称现在很重要——但它的名称可以随时更改。
- 然后我运行 [
git remote add
...]
这也很好:它创建命名遥控器,将其与提供的 URL 配对。 此时没有其他任何事情发生。 例如,没有创建或销毁分支。
- 它说“在分支主”上,但我希望它在“主”分支上。
我假设您的意思是git status
说明了这一点。 那是因为在第 4 步之前您拥有的不存在的分支被命名为master
,因此在第 4 步中创建的名称是master
。
现在最简单的方法是将master
重命名为main
:
git branch -m main
- 之后我运行这个命令
git push -u origin main
由于您自己的 Git 存储库中尚不存在名称main
,因此这会给您一条错误消息:看起来相当神秘的src refspec main does not match any
. 那是因为您提供了一个扩展为main:main
的 refspec(即main
),这意味着将我的提交发送到origin
,并要求他们根据我现有的main
创建或更新他们的main
。 由于您没有现有的main
,因此您收到此错误。
如果您将现有的master
重命名为main
,您提供的 refspec — main:main
,缩写为main
— 现在将匹配您现有的一个名为main
的分支,并且可以工作。
如果您创建名为main
的第二个分支,则git push
也将起作用。 您现在将拥有两个本地分支,一个名为master
,一个名为main
。 然后,您应该切换到main
名称并删除您可能不想要的master
名称。
如果您收到错误提示您的git push -u origin main
不是fast-forward
,这意味着在第 1 步中,您创建了 GitHub 存储库并带有一些初始提交,它已经在 ZD3B7C913CD04EBFEC8E9EC32CB6FD5 上创建了一个main
分支。 您现在必须确定 GitHub 上的初始提交是否具有任何价值。
如果该初始提交没有价值,请使用git push -f origin main
强制丢弃初始 GitHub 提交(以及其他任何人添加的任何提交,如果其他人有权访问此存储库),以支持您自己的初始提交。
如果它确实有价值,您需要以某种方式将您自己的初始提交与 GitHub 的初始提交结合起来。 这将是一个单独问题的主题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.