致命的:現在のブランチマスターには上流ブランチがありません


227

プロジェクトの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
リポジトリをプッシュする前に、github リポジトリが存在している必要があります。そうですか?そして、あなたはそれのクローンで作業しているレポですか?
マット

私はGithubからレポを複製してから、1行をreadmeファイルに追加し、それを元に戻そうとしました。
user1524361 2014年

1
ファイルをコミットするのを忘れたため、同じエラーが発生しました
Mateen

3
-uと--set-upstreamは同じです
brainLoop

gitOPが投稿したコマンドが答えを超えて私を助けてくれたことをみんなに知らせたい
Nathan

回答:


94

あなたはプッシュを固定し、しかし、独立してそのプッシュ(私は「で説明し、問題の理由は、私が明示的に新しいブランチをプッシュする必要がありますか?」:git push -u origin masterまたはgit push -u origin --all)、あなたは認証の問題を解決するために、今必要があります。

それはあなたのURLに依存します( 'のようにssh git@github.com/yourRepo、またはのようにhttps https://github.com/You/YourRepo

https URLの場合:

アカウントが2要素認証によって保護されている場合、ここ またはここで説明されているように、通常のパスワード(https URLの場合)は機能しません。

パスワードに特殊文字が含まれている場合も同じ問題(この回答のように

httpsが機能しない場合(セカンダリキー、PAT:個人用アクセストークンを生成したくないため)、次に示すように、sshに切り替えることができます


コメントのqwertyで述べられているように、リモートで同じ名前のブランチを自動的に作成できます:

git push -u origin head 

どうして?

  • HEAD(ご参照.git\HEADファイル)を現在チェックアウト枝のrefspecている(たとえば:ref: refs/heads/master
  • デフォルトのプッシュポリシー単純です

このプッシュに使用されるrefpecはhead:(宛先なし)であるため、欠落し:<dst>ているのは<src>(ブランチであるhead)と同じ参照を更新することです。

ただし、HEADがデタッチされている場合は機能しません。


1
素晴らしい、これは我々が根本原因の問題を修正するために必要なもの、ただ表面にそれを修正ではありません
workplaylifecycle

ブランチにいる場合、これは便利ですgit push origin head -u。リモート上に同じ名前のブランチを自動的に作成します。
クワーティ

1
@Qwertyありがとう、良い点。わかりやすくするため、回答にコメント(詳細を追加)を含めました。
VonC

115

また、次のコマンドを使用できます。

git push -u origin master

これにより、リモートリポジトリに別のブランチが作成されます(-u)。sshを使用した認証が行われると、そうなります。


2
問題は認証にあるため、これは問題に本当に関連しています。彼はまた、彼のポストですでにそれを試みたと述べました。
Mike Precup、2014

2
2つの理由で反対票を投じました。1つ目:OPは彼がすでにこれを試したと述べた。2つ目:-uオプションは、--set-upstream新しいブランチの作成とは何の関係もないオプションのショートカットです。or オプションのドキュメント-u--set-upstreamから:「最新の、または正常にプッシュされたすべてのブランチについて、引数なしのgit-pull [1]およびその他のコマンドで使用されるアップストリーム(追跡)参照を追加します。」実際、私はこの回答が誤解を招くほど賛成投票された理由がわかりません。
louisfischer

38

--all初めてプッシュするときにパラメーターを忘れたときにも、このエラーメッセージが表示されるようです。私が書いた

git push -u origin

このエラーが発生しましたが、

git push -u origin --all

ああ、私はこれらのコピー貼り付けエラーを気に入っています...


3
ありがとう。Visual Studio Codeでこのエラーが発生しましたが、これは機能しましたが、複数の開発者のコ​​ンテキストでは、これが何をしたのか誰かが説明できますか?
Hell.Bent


13

このシナリオを試してください

git push -f --set-upstream origin master

7
これがどのように、そしてなぜ機能するのかについて、さらに説明する必要があります。
ブノワラティニエ

6
「悪くない」とは、本当に悪い説明です。「悪くない」はあなたの答えを本当に悪くします。
GhostCat 2018年

これはOPが言及したエラーに対処するために何もしません:「認証に失敗しました」
Sean the Bean

はい。うまくいきました。これは、上流(リモート)ブランチへのコミットを強制していると思います。
vkg

12

git pushコマンドラインでrefspecが指定されておらず、リモートでrefspecが構成されておらず、コマンドラインで指定されたオプションのいずれによってもrefspecが暗黙指定されていない場合に実行するアクションを定義します。

早くやれよ:

git config --global push.default current

その後

git push

1
これにより、グローバルgit設定が変更され、悪影響が生じる可能性があることに注意する必要があります。しかし、これはまさに私が探していたものでした。
Mavamaarten

@Mavamaarten潜在的な悪影響は何ですか?
kosii

7

まあ、私はアップロード中に同じ問題を抱えていたので、それを実行するように言ったのと同じことを実行して解決しました。

git push https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git

しかし、何の結果も得られなかったので、私はさらに深く調べてみました。

git push --set-upstream https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git master

そしてそれはうまくいった。したがって、ユーザー名とパスワードの入力を求められます。また、トークン生成し、パスワードの代わりにトークンを貼り付けたため、正常に実行されました。

  1. トークンを生成するには、Githubアカウントに移動し、開発者設定で別のトークンを作成します。
  2. それを取得したら、そのトークンをコピーし、要求されたらパスワードプロンプトに貼り付けます。

6

非常に単純な側面として、いったん他のブランチを作成すると、ブランチをプッシュするためだけに使用することはできません

git push

しかし、プッシュしたいブランチをチェックアウトしている場合でも、ここでブランチを指定する必要があるので、

git push origin <feature_branch>

どこでもmaster枝ができる


5

コミットを忘れるという単純なエラーを犯しました:

git commit -m "first commit"

その後git push origin master働いた。


4

同じ問題がありました

ここに画像の説明を入力してください

以下のコマンドを使用することで解決しました

$ git branch --set-upstream develop origin/develop

.gitフォルダー内の構成ファイルに構成を追加します。

ここに画像の説明を入力してください


3

最初に使用してgit pull origin your_branch_name からuse git push origin your_branch_name


これはばかげて聞こえる場合は申し訳ありません。ブランチ名を知る方法。私のリポジトリはAWSにあります。
Pravinraj Venkatachalam

「gitブランチ」を使用
Darius Miliauskas

3

macOS Sierraで私のために働いたこれに対する簡単な解決策があります。次の2つのコマンドを実行しました。

git pull --rebase git_url(Ex: https://github.com/username/reponame.git)
git push origin master

今後のプッシュ後にアップストリームに関する致命的なエラーが表示された場合は、次のコマンドを実行します。

git push --set-upstream origin master

0

1.コンピューターとgithubが関連付けられています。SSHを使用します。確認済みの画像を送信する必要がないコンピューターコード

2. gitは空のフォルダーを管理できません。そのため、ファイルに保存されたこのようなreadme.mdを記述する必要があります。そうしないと、ファイルが見つかりません。

3.ローカルプロジェクトは、新しいプロジェクトが移行するものではありません。お願いします

git init

git remote add origin +"githublink"

git add .

git commit -m "" また行く。

4.次にgit pull origin master(キー)

5.最後にgit push origin master(すべての問題を解決)。

http://my.oschina.net/psuyun/blog/123005参考链接


0

コードをマスターブランチに直接プッシュしようとしている場合は、コマンドを使用します

git push origin master

それはわたしを助ける。


0

私も同じエラーが発生しました。クローンを作成してプッシュバックしようとしたためだと思います。 $ git push -u origin master これは正しいコマンドです。

オブジェクトのカウント:8、完了。最大2つのスレッドを使用するデルタ圧縮。オブジェクトの圧縮:100%(4/4)、完了。オブジェクトの書き込み:100%(8/8)、691バイト| 46.00 KiB /秒、完了。合計8(デルタ1)、再利用0(デルタ0)リモート:デルタの解決:100%(1/1)、完了。

  • [新しいブランチ]マスター->マスターブランチマスターは、リモートブランチマスターを起点から追跡するように設定されています。

    It was successful. Try to create new u branch 
    

0

私は同じ問題を抱えていました、原因は私がブランチを指定するのを忘れていたことでした

git push myorigin feature/23082018_my-feature_eb

0

私にとっては、書き込みアクセス権を持っていなかったプライベートリポジトリに変更をプッシュしていました。プッシュまたはプル操作を実行するときは、有効なアクセス権があることを確認してください。

直接確認できます


1
「を介して直接確認する」何ですか?
マイクプール

0

私にとっては、非表示の.gitフォルダーを削除したためです。

フォルダーを削除し、再クローニングして、変更を加え直すことで修正しました。


0

ブランチにいる場合は、これを使用できます:

git push origin head -u

これにより、リモートに同じ名前の新しいブランチが自動的に作成されます。


-1

この問題を解決するには、gitそれ自体からコードをチェックアウトするときに、以下のようなコマンドを指定する必要があります。

git checkout -b branchname origin/branchname

ここでは、デフォルトでを設定the upstream branchしているため、上記の問題に直面することはありません。


-2

私にとって問題は私のブランチの名前から来ています: "#name-of-my-branch"、 "#"がなければ問題なく動作します!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.