プロジェクトの 1 つを github にプッシュしようとしているのですが、次のエラーが繰り返し発生します。
peeplesoft@jane3:~/846156 (master) $ git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
それで試してみたら、次のようになりました:
peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master
fatal: Authentication failed
別の stackoverflow スレッドでは、次のことを試してみることを提案されましたが、残念な結果になりました。
peeplesoft@jane3:~/846156 (master) $ git push -u origin master
fatal: Authentication failed
それから私はこれを試しました:
peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD
peeplesoft@jane3:~/846156 (master) $ git push
fatal: Authentication failed
何かヒントはありますか?
ベストアンサー1
プッシュは修正されましたが、プッシュの問題とは関係なく(「新しいブランチを明示的にプッシュする必要があるのはなぜですか?":git push -u origin master
またはgit push -u origin --all
) の場合は、認証の問題を解決する必要があります。
それはあなたのURLによって異なります(' のssh [email protected]/yourRepo
、または のhttps https://github.com/You/YourRepo
)
https URLの場合:
あなたのアカウントが二要素認証通常のパスワードは機能しません(https URLの場合)。ここで説明されているように またはここ。
パスワードに特殊文字が含まれている場合も同様の問題が発生します(この答え)
httpsが機能しない場合(セカンダリキー、PAT:個人アクセストークンを生成したくないため)、sshに切り替えることができます。ここで示したように。
次のように指摘されている。クワーティーコメントに次のように記述すると、リモート上に同じ名前のブランチを自動的に作成できます。
git push -u origin head
なぜ?
- HEAD (
.git\HEAD
ファイルを参照) には現在チェックアウトされているブランチの refspec があります (例:ref: refs/heads/master
) - デフォルトプッシュポリシーは単純
このプッシュに使用される refspecec は head: (宛先なし) であるため、欠落しているということは、(ブランチである head):<dst>
と同じ ref を更新することを意味します。<src>
それはうまくいかない頭が外れたけれど。
または、Git 2.37 (2022年第3四半期) と新しいグローバル オプションpush.autoSetupRemote
:
git config --global push.autoSetupRemote true
git push