web-dev-qa-db-ja.com

gitでコミットをプッシュするときにsrc refspec masterがどれにも一致しません

リポジトリをクローンしました。

git clone ssh://xxxxx/xx.git 

しかし、いくつかのファイルとaddcommitを変更した後、それらをサーバーにプッシュしたいと思います。

git add xxx.php
git commit -m "TEST"
git Push Origin master

しかし、私が戻ってくるエラーは:

error: src refspec master does not match any.  
error: failed to Push some refs to 'ssh://xxxxx.com/project.git'
2114
sinoohe

たぶんあなたはただコミットする必要があります。私がやったとき私はこれに遭遇しました:

mkdir repo && cd repo
git remote add Origin /path/to/Origin.git
git add .

おっとっと!決してコミットしないでください。

git Push -u Origin master
error: src refspec master does not match any.

私がしなければならなかったのは、

git commit -m "initial commit"
git Push Origin master

成功!

3339
baisong
  1. どんな参照があるのか​​を見るためにgit show-refを試してください。 refs/heads/masterはありますか?

  2. あなたはもっとローカル参照に依存しない解決策としてgit Push Origin HEAD:masterを試すことができます。これはローカルのリファレンスHEADをリ​​モートのリファレンスmasterにプッシュすることを明示的に示しています( git-Push refspec のドキュメントを参照)。

659
Vi.

ローカルコンピュータのすべてのファイルを削除した後も、同様のエラーが発生しました。リポジトリのすべてのファイルをクリーンアップする必要があります。

私のエラーメッセージはこのようなものでした:

error: src refspec master does not match any.
error: failed to Push some refs to 'git@github ... .git'

そして、それは以下のコマンドを実行することによって解決しました:

touch README
git add README

git add (all other files)
git commit -m 'reinitialized files'
git Push Origin master --force  # <- caution, --force can delete others work.

それで、これが役立つことを願っています。

198
Aryo
  1. 私の変更は既にコミットされています
  2. Force Pushでもまだ同じエラーが発生しました。 

そこで私は Viの解決策 を試してみました。

git Push Origin HEAD:<remoteBranch> 

これは私のために働きました。

165
tldr

私にとっては、 公開鍵 がサーバー(〜/ .ssh/authorized_keysに追加されている)とgithub/bitbucket(githubまたはbitbucketの私のSSH鍵に追加されている)に正しく設定されていること一致。

その後:

git add --all :/

git commit -am 'message'

git Push -u Origin master

最後に私のために働きました。 

102
Red
git Push -u Origin master
error: src refspec master does not match any.

そのためには、以下のようにコミットメッセージを入力してコードをプッシュする必要があります。

git commit -m "initial commit"

git Push Origin master

マスターに成功しました

101
VIKAS KOHLI

私はgitがディレクトリのみを追加した後、これがまったく新しいリポジトリで起こったことを知りました。 

私がファイル(例えばREADME)を追加するとすぐに、git Pushはうまくいきました。

64
Andrew E

git add .またはgit commitがないかスキップすると、このエラーが発生する可能性があります。

git Push -u Origin master
Username for 'https://github.com': yourusername
Password for 'https://[email protected]': 
error: src refspec master does not match any.
error: failed to Push some refs to 'https://github.com/yourusername/foobar.git'

修正するには、再初期化して正しい手順に従います。

git init
git add .
git commit -m 'message'
git *create remote
git Push -u Origin master
63
aug2uag

修正するには、再初期化して正しいコードシーケンスに従ってください。

git init
git add .
git commit -m 'message'
git Push -u Origin master
58
pratik kumar

最初に追加したことを確認してからコミット/プッシュします。

好きです:

git init
git add .
git commit -m "message"
git remote add Origin "github.com/your_repo.git"
git Push -u Origin master
48
Saurabh Singh

これは、あなたが特定のブランチにいて、まだ存在していない別のブランチをプッシュしようとしたときにも起こります。

$ git branch
* version-x  # you are in this branch
  version-y

$ git Push -u Origin master
error: src refspec master does not match any.
error: failed to Push some refs to 'Origin_address'
41
wilsonfoz

最初のコミットを追加する、手順に従ってください: -

  • git add。

  • git commit -m "初期コミット"

  • gitプッシュオリジンマスター

    これは私のために働きました 

25
NeeruSingh

私の問題は、 'master'ブランチがまだローカルに作成されていないことでした。

クイック 

git checkout -b "master" 

マスターブランチを作成した、その時点で、速い:

git Push -u Origin master

Gitリポジトリに仕事を進めました。

17
Antoine
  1. 最初のGitを追加します。
  2. 2番目のgit commit -m "message"
  3. 3番目のgit Push Origin branch もスペルミスがないかチェックしてください。
17
Alwan Mortada

これはちょうどあなたが最初のコミットをするのを忘れたという意味です

git add .
git commit -m 'initial commit'
git Push Origin master
17
xuri

私は同じ問題に直面し、私は--allow-emptyを使いました。

$ git commit -m "initial commit" --allow-empty
...
$ git Push
...
16
Jin Kwon

逃したときも同じ問題がありました。

git add .

(あなたは少なくとも一つのファイルを持っていなければなりません、さもなければあなたは再びエラーを得るでしょう)

15
neoDev

私は同じ問題を抱えています。私は次の手順でそれを行います

1. git commit -m 'message'
2. git config --global user.email "your mail"
3. git config --global user.name "name"
4. git commit -m 'message'
5. git Push -u Origin master

誰かに役立つことを願っています

12
user3051460

これはあなたがあなたのファイルを追加したときに起こります。 ファイルをコミットしてからプッシュします。 

12
user993563

git add。

そのコードに必要なのは、あなたのディレクトリ内のすべての未追跡ファイルを追跡することだけです。 

11
HuntsMan

切り離しHEADモードで作業中にこのエラーが発生した場合は、次のようにします。

git Push Origin HEAD:remote-branch-name

gitを作成する分離ヘッドからプッシュする

あなたがリモートブランチとは異なるローカルブランチにいる場合、これを行うことができます。

git Push Origin local-branch-name:remote-branch-name
10
snap

Git initを実行して最初のコミットを押した後でもこの問題に直面している場合あなたは以下を試すことができます、

git checkout -b "new branch name"
git Push Origin "new branch name"

あなたのコードは新しいブランチとしてプッシュされます。

9
Govind

あなたがプッシュしようとしているブランチ名にタイプミスがある場合も同様です。

9
Gavin

初めて使う場合はgitを設定する必要があります。

git config --global user.email "[email protected]"

git config --global user.name "Your Name"
8
asdasd

コミットの後でPushの前に "git pull Origin master"をするのを忘れていましたが、同じ問題を引き起こします。することです:

1. git add .
2. git pull Origin master
3. git commit -am "Init commit"
4. git Push Origin master
8
Lackeeee

私はまた以下のようにgithubsの指示に従いましたが、それでもOPによって言及されるのと同じエラーに直面しました:

git init git add . git commit -m "message" git remote add Origin "github.com/your_repo.git" git Push -u Origin master

私にとっては、これがある程度役立つことを願っています。MacOSに大きなファイル(1.58 GB on disk)をプッシュしていました。上記の推奨コード行をコピーペーストしている間、私は自分のプロセッサが実際にadd .プロセスを終了するのを待っていませんでした。だから私がgit commit -m "message"とタイプしたとき、それは基本的にいかなるファイルも参照せず、そして私のコードをgithubに首尾よくコミットするのに必要なことは何も完了していない。

これの証明は、私がgit statusとタイプしたとき、通常私は追加されたファイルのために緑色のフォントを得る。しかし、すべてが赤かった。まったく追加されていないかのように。

だから私はステップをやり直しました。 git add .と入力し、ファイルが追加されるのを待ちます。その後、次の手順に従ってください。

これが誰かに役立つことを願っています。

7
Gel Sisaed

外部ソースからレポジトリをチェックアウトし、それを個人用/内部システムにインポートしたいシナリオでは、このコマンドは本当に輝きます。

git Push --all Origin

これは、refをチェックせずにコミットを主張してすべてのブランチをプッシュします。

7
d.raev

これを試して:

git add .

git commit -m "your commit message"

git remote add Origin *remote repository URL*

git Push Origin *your-branch-name*
7
Palak Jain

同じ問題に直面しましたが、私の場合は、新しいリポジトリを作成するときにページに記載されているとおりに最初から正確な手順を実行してもうまくいきました。これを貼り付けるだけ

  echo "# YYYY" >> README.md
  git init
  git add README.md
  git commit -m "first commit"
  git remote add Origin https://github.com/XXXX/YYYY.git
  git Push -u Origin master

GitBash に上記を入力します。XXXXはユーザー名、YYYYはリポジトリ名です。

6
Anubhav Pandey

空のディレクトリを追加しているときにこの問題が発生しました。 Gitは空のディレクトリをプッシュすることを許可していません。これが簡単な解決策です。

リモートにプッシュしたいディレクトリの中に.gitkeepファイルを作成し、コマンドラインから "empty"ディレクトリをコミットします。

touch your-directory/.gitkeep
git add your-directory/.gitkeep
git commit -m "Add empty directory"
6
Rajesh Khadka

私のローカルブランチ名がgit Push Origin <<branchname>>で作成しようとしていた新しいリモートブランチと一致しなかったため、このエラーが発生しました。

6
Amalgovinus

git commit -m "xxxx"コマンドを忘れた場合も同じ問題が発生するため、コミットタイトルを確認してください。

git commit -m "initial commit"
6
Ferhat KOÇER

これは私がリポジトリをリモートマスターにリセットするのに役立ちました

git checkout master
git commit -a -m "your comment"
git Push Origin master
6
Giulio Roggero

無効なブランチをプッシュしたからだと思います。一般的にリポジトリは共通のマスタブランチ(おそらく開発ブランチ)を持っていないからです。枝を見るには git branch を使います。

5
Zhengming Ying

コミットのみがこのエラーを解決しました。

git commit -m "first commit"
5
Omid Ahmadyani

この問題のもう1つの考えられる原因は、ブランチ名のスペルを間違えた場合です。それで、あなたが私がしたことをしたならば、問題は修正することによって解決されるでしょう:

git Push Origin mater

に 

git Push Origin master
5
jcw

Originに新しいブランチをリモートで作成したい場合は、最初に同じブランチをローカルに作成する必要があります。

$ git clone -b new-branch
$ git Push Origin new-branch
4
Vojtech Vitek

私は同じ問題を抱えていて、次のステップで私のものを直します: 

  • git pull --rebase https://github.com/yours master
  • git add。
  • git commit -m 'コミットメッセージ'
  • gitプッシュオリジンマスター

それが役に立てば幸い

4
Gujarat Santana

私がOriginのマスターブランチを参照していないとき、これは私に起こりました。だから、あなたは以下を試すことができます:

git pull Origin master

これにより、ローカルリポジトリにOriginのマスターブランチへの参照が作成されます。その後、ローカルリポジトリをOriginにプッシュすることができます。

git Push -u Origin master
4
ihayet

私は同じようなエラーがありました。しかし、Gitは私に言う:

*** Please tell me who you are.

実行する

git config --global user.email "[email protected]"
git config --global user.name "Your Name"

アカウントのデフォルトIDを設定することもできます。

Omit --global to set the identity only in this repository.

それからエラーは消えます。

4
Paket2001

正しいブランチ名をプッシュしていることを再確認してください。私は同じエラーに遭遇し、git show-refを見た後、私は間違ってタイプしていたのを見ることができました。

4
rabbitwerks

リポジトリをリセットしようとしたときに起きた問題です。私はすべての履歴を削除し、何もコミットしたくなかった。ただし、コミットするには少なくともSOMETHINGを追加する必要があるため、空のテキストファイルgit add .を作成してからgit commit -m "Reset repository"を作成しました。

3
Sina Madani

おそらく "git add"というコマンドを忘れたでしょう。 "git init"コマンドの後.

3
Sumer

古い話題ですが、私はこの問題を抱えていて、私の経験を共有したいと思いました。私はすでにコミットを作成しました。 

あなたが正しい枝に向かって進んでいることを確認してください

Git Push Origin masterと入力していましたが、git branchと入力したときはv1ブランチにいたので、git Push Origin v1と入力する必要がありました。

3
espradley

間違ったディレクトリにファイルを作成し、git Push -u Origin masterを実行しようとしましたが、現在のディレクトリにcdしたらgit Push -u Origin masterで問題ありません。

3
Ali

Android StudioでVCSを扱う際に、私はこの正確な問題に直面しました。私がしなければならなかったことがすべてであることがわかった:

  1. 「app」フォルダからすべてのファイルを選択してください。
  2. VCS(一番上のオプション)に進みます。
  3. ファイルを「追加」します。
  4. 端末から、またはドロップダウンメニューからクリックして、再度コミットします。
  5. 押す! 

ユーレカ! :D

2
Dimpy Chhabra

私は1つのgithubリポジトリに貢献していたので、プロジェクトをフォークし、クローンを作成し、自分のブランチを作成し、いくつかのコミットをしてPushを試みました。この時点で私は自分のフォークではなく元のプロジェクトレポジトリ(プッシュする権限がない)を複製したことを発見しました。 

そこで私は.git/configをOriginを私のリポジトリに向けるように変更しました。

私がプッシュしようとしたこの時点で私はエラーerror: src refspec my_awesome_branch does not match any.を得ていました

私がしなければならなかったのは、ファイルに触れてそれをコミットすることです( この答えで見たのと同じように

git touch README
git commit -m "fixing error in my git repo"

そしてより: 

git checkout master
git pull Origin master
git Push Origin master # this will tell my remote repo about my new branch
git checkout my_awesome_branch
git Push Origin my_awesome_branch # now it will work
2
equivalent8

多分githubはあなたが誰なのかわからない。

最初に実行する必要があります。 git config --global user.email "[email protected]" git config --global user.name "Your Name"

1
Amir.S

@Aryo私の場合は、ファイルをプッシュするために私のローカルgitリポジトリのフルURLを使わなければなりませんでした。まず、現在のディレクトリにあるすべてのファイルを削除しました。 READMEが作成されました。もう少し追加しました。それから私はそれらのファイルをコミットし、そしてついにそれらをリポジトリに適切なURLを与えるようにプッシュしました。ここでyourrepositoryはサーバ内のリポジトリの名前です。

rm -rf *

touch README
git add README
touch file1 file2
git add file1 file2

git commit -m "reinitialized files"
git Push git@localhost:yourrepository.git master --force
1
Pramod

Gitからのエラー: エラー:src refspec masterがどれにも一致しません。

このステップで修正されました: git commit -m "first commit"

私が走る前に: git add

そして走った後: git Push -u Origin master

!!!

1

私のために働く

チェックアウトマスターブランチ

git checkout -b master
git add .
git Push Origin master 

または力の変更に--forceを使用

git Push Origin master --force
1
Sohail

私はこの "エラー:src refspec masterがどれにも一致しません。" を変更しようとしてGitHubにpushしようとしたときに捉えられます.

git Push -u Origin branch-name - helped me up to date my local files
1
discipleartem

私は同じ問題を抱えていたし、私は私が任意のファイルをコミットしていないことも発見したので、もう一度コミットしようとすると私はこのエラーメッセージが表示されます

*** Please tell me who you are.

Run

 git config --global user.email "[email protected]"
 git config --global user.name "Your Name"

 to set your account's default identity.
 Omit --global to set the identity only in this repository.

 fatal: unable to auto-detect email address (got 'USER@WINDOWS-HE6I2CL.(none)')

それから私がしたのは、自分のEメールアドレスと名前をグローバルに追加し、もう一度コミットしただけです。

git commit -m 'Initial commit'

それから押した

git Push -u Origin master

これが役立つことを願っています

1
samezedi

私は非常に長い地方支店名を持っていました。 

git branch -m new_shorter_branch_name

問題を修正しました。

1
Scotty.NET

私の場合は、.gitignoreファイルを含めるのを忘れていました。必要な手順は次のとおりです。

  1. リモートに空のGitリポジトリを作成します。
  2. ローカルでプロジェクト用の.gitignoreファイルを作成します。 Githubはあなたに リストの例をここに与えます
  3. 端末を起動し、プロジェクトで次のコマンドを実行します。

    git remote add Origin YOUR/Origin.git

    git add .

    git commit -m "initial commit or whatever message for first commit"

    git Push -u Origin master

1
Ismail H

私の場合はリポジトリをクローンしましたが、ローカルにブランチに切り替えませんでした

私はこれをやって解決した

コードを変更する前に、これを行うべきです git checkout branch-name

それからあなたのコードに変更を加えます

その後コードをブランチにプッシュします git Push -u Origin branch-name

1

私もこの問題を受けましたが、プッシュを実行する前に誤ってサーバーをシャットダウンしたためです。これも同じエラーを引き起こします。

0
arush436

WindowsのCmderでBashを使用している場合は、必ず新しいホームディレクトリに新しい.sshフォルダを作成してください。 

1)あなたのホームディレクトリcd ~に行きます。 

2)sshキーssh-keygenを生成します。

3)すべての入力を空白のままにします(enterを押し続けます)

4)id_rsa.pubファイルをGithub>設定> SSHキーにコピーします。

0
Janac Meena

Src-refspecエラーが発生したとき、上記の解決策のどれも私のために働きませんでした。 私のワークフロー:

  • リモートブランチにプッシュ(同じローカルブランチ名) 
  • そのリモートブランチを削除しました 
  • いくつかのものを変更してコミットしました 
  • 同じリモートブランチ名(同じローカルブランチ名)に再度プッシュしました 
  • src-refspecエラーが発生しました。

単純に 新しいブランチを作成し、もう一度プッシュすることでエラーを修正しました。 (奇妙なことに、私は単にブランチの名前を変更することはできませんでした - 致命的になりました。

0
aimango

ビジュアルスタジオコードがある場合

  1. 変更を追跡する必要がない場合は.gitフォルダを削除します(はいの場合はgit stash)。
  2. git init
  3. git commit -m "最初のコミット"
  4. git remote add Origin https://github.com/YOURusername/YOURrepo.git
  5. visual StudioコードUI IDE左側のパネルからGOTOソース管理または(Ctrl + shift + G)
  6. すべての変更または一部を上演する
  7. 変更を確定する
  8. 左下のボタン(番号やクラウドアイコンなど)で変更を同期してから、Visual Studioでユーザー名とパスワードを入力します

リポジトリへのアクセス許可がある場合は、次のように表示されます。

> git Push -u Origin master
Fatal: AggregateException encountered.
To https://github.com/your_account/yourrepo.git
 * [new branch]      master -> master
> git status -z -u
> git symbolic-ref --short HEAD
> git rev-parse master
> git rev-parse --symbolic-full-name master@{u}
> git rev-list --left-right master...refs/remotes/Origin/master
> git for-each-ref --format %(refname) %(objectname) --sort -committerdate
> git remote --verbose
> git show :ionic.config.json
> git check-ignore -z --stdin

私はこのエラーがありました、そして、私が "&" という文字を使ったので、それは枝の名前に関する問題でした。 "^&"で飛ばしただけでうまくいきました。

0
M. Dhaouadi

私の場合、Windowsで発生した問題は、ブランチ名にfeature\のような接頭辞を追加することに関係しているようです。このような接頭辞を付けてブランチを作成してプッシュしようとしていました(たとえば、feature\branch)が、別の名前の接頭辞がFeature\(たとえば、Feature\otherbranch)という別のブランチがすでにありました。これは、Windowsでは新しいブランチが同じrefs\heads\Featureフォルダに配置されたことを意味します。 Gitは大文字と小文字を区別するかもしれませんが、Windowsファイルシステムはそうではありません。 Feature\branchという名前のローカルブランチをチェックアウトしたら、それは役に立ちました。

0
kamilk

WindowsでGit Bashを使用している場合は、再起動してください。私のために働いた!

0
ExillustX

許可の問題?解像度 それをフォーク

リポジトリへのプッシュ権限がなかったためにこのエラーが発生したため、 Fork it を実行し、フォークしたリポジトリで再度pull、commit、Pushコマンドを実行しました。

0
MAX

GitHubの新しいリポジトリにコンテンツをプッシュしようとしているときに、このエラーが発生しました。私はGitリポジトリをローカルに作成し、さらにWeb GUI(LICENSEファイルを含む)を使用してGitHub上にリポジトリを作成しました。

空のGitHubレポジトリからLICENSEファイルをローカルレポジトリに取り込んだ後、問題は解決しました。その後、私は問題なくプッシュすることができました。

0
Thomas Jensen

あなたがマスターブランチを持っていることを認識していません、それを作成して再度コミットするだけです。

マスターブランチを作成するには:

git checkout -b master
0
oskarko