我试图将一些本地未版本化的代码推送到repo中,并出于可访问性的原因将其上传到GitHub。
我遵循了here的建议
cd <local_dir>
git init
git add .
git commit -m "initial commit"
然后我在github上创建了一个新的repo并做了
git remote add origin https://github.com/...
git pull origin master --allow-unrelated-histories
git push --force-with-lease
但是我现在在github上看到我有两个分支'main'和'master',我猜github在创建repo时创建了'main',而我在从本地repo同步时创建了'master'
我两个都需要吗?
我可以把master合并到main中然后删除master吗?
目前它只是把我弄糊涂了
注:我现在已经试过了(本地)
git branch -m master main
git push origin HEAD
但我得到一个错误
To https://github.com/<the-repo>
! [rejected] HEAD -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/<the-repo>'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
我错过了什么?
3条答案
按热度按时间ehxuflar1#
在美国2020年的事件之后,GitHub决定将默认的Git分支重命名为
main
(details)。Git和GitHub不强制使用任何分支名称,但仓库需要一个默认分支;这个分支如何命名取决于您。至于你的第二个问题,解决
main
是好的。在进行任何更改之前,请检查您的提交是在哪个分支上:master
上完成的,你必须将master
合并到main
,然后删除master
main
上提交的,master
上没有任何内容,并且可以删除它。您可以:
push
更改到GitHub(我的首选)pull
上工作编辑以回答额外的问题:Git很棒,因为它有相当丰富的错误信息和建议:
Updates were rejected because the tip of your current branch is behind its remote counterpart.
这意味着远程分支(在GitHub上)有你的本地分支没有的更改,这就是为什么Git拒绝push
。Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again.
这是典型的解决方案。0yycz8jy2#
Git不需要任何特定的分支。
旧版本的Git(以及GitHub),默认情况下用于创建“主”分支。在后来的版本(IIRC,大约2020年10月)中,默认分支被重命名为“main”,以使用更具包容性的语言。
从技术的Angular 来看,你可以保留两个,决定一个,甚至放弃它们,并决定你的默认分支叫做海绵宝宝。
elcex8rz3#
只要做一件事,这个主或主显示在文件夹/repo后藤视图部分点击隐藏文件,你发现一个文件名为。git只要删除它,你的问题将解决