TN は本当にクレイジーです。今日 Gitee で新しいプロジェクトを作成しましたが、ローカル コードをプッシュしようとすると、次のエラーが報告されます。
➜ *** git:(main) git push -u origin "master"
error: src refspec master does not match any
error: failed to push some refs to 'https://gitee.com/***/***.git'
何年も git を使っているのに、このような光景は見たことがありません。
どうしてこのような光景を見たことがあるでしょうか? 急いで Baidu を歩いてください。
インターネット上には本当にあらゆる種類の格言があります。
しかし、この時点で注意してください。すぐに、ローカルブランチが main と呼ばれていることがわかりました。不思議ではありませんが、master ブランチにプッシュしても、プッシュすることはできません。
案の定、これは画期的な出来事です。昨日 xcode ツールをアップグレードしたことも思い出しましたが、内部の git も同様にアップグレードされているはずです。デフォルトのブランチ名を main に変更することについては、git によって行われるか Apple によって行われるかに関係なく、これ以上は説明しません (ここでは Apple Git を使用しているため)。
では、なぜ Git はデフォルトの main ブランチ名を main に変更するのでしょうか?
実は、これも海外のZZZQに関する質問です。具体的かつ詳細な理由は、Git ブランチが「マスター」から「メイン」に変更され始めたのはなぜですか? , こちらが簡単なスクリーンショットです。
理由が分かったので、次のステップは簡単です。
解決策は大まかに 2 つあります。 1. git のデフォルトのブランチ名を master に戻します。2. main ブランチを main に変更することに協力します。
1. git のデフォルトのブランチ名を master に戻す
コードを Gitee に送信したいので、Gitee のデフォルトの master ブランチはまだ master なので、ここで git のデフォルトのブランチ名を変更することにします。
ターミナルで次のコマンドを実行します。
git config --global init.defaultBranch master
設定が有効になっているかどうかを確認します。
vim /Users/[你的账户名]/.gitconfig
構成は成功しました。
次にローカル コードを再初期化します。
デフォルトのブランチ名は master になります。その後、プッシュが成功する可能性があります。
2. リモートとローカルが元々マスター メイン ブランチで
ある場合は、メイン ブランチを main に変更することに協力します。次に、次のメソッドを使用して main ブランチを main に変更できます。
まずローカルでブランチを変更します
git branch -m master main
実行後、ローカルには main ブランチのみが存在し、master ブランチは存在しません。
次に、新しく名前を付けたメイン ブランチをリモート リポジトリにプッシュします。
git push -u origin main
リモートウェアハウスにはメインブランチがないため、この時点でメインブランチが自動的に作成されます。
次にメインブランチに HEAD をポイントします
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
最後に、リモート ウェアハウスの古いマスター ブランチを削除します。
git push origin --delete master
参考文献
https://pages.carm.cc/doc/branch-main.html
https://www.jianshu.com/p/098c77d891a2