web-dev-qa-db-ja.com

プッシュしようとしたときにGitが「最初にフェッチ」エラーを与える

受講中のクラスを通じてgitを初めて紹介します。コンピューターのディレクトリに多数のファイルがあり、問題なくステージングしてコミットできます。ただし、githubリポジトリにファイルをプッシュしようとすると、次のメッセージが引き続き表示されます。

Pushing to https://github.com/BigMeanCat/CMDA
To https://github.com/BigMeanCat/CMDA
 ! [rejected]        master -> master (fetch first)
error: failed to Push some refs to 'https://github.com/BigMeanCat/CMDA'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git Push --help' for details.

誰かがこれが何を意味するのか、それを修正する方法で私を助けてくれますか?オンラインで同様の問題を抱えている人を見たことがありますが、私はgitがまったく新しく、まだgitのコマンドライン言語に十分に精通していません。問題を解決するのか悪化させるのかわからないので、特定の提案をするのを少しためらっています。

ありがとう!

12
FizzikalGrafiti

他の誰か(または他のマシンのユーザー)が変更セットをリモートリポジトリにプッシュしました。あなたは、あなたのローカルマシン上でそれらの変更をまだ持っていません。状況を解決するには、まず最初に

git pull

その後

git Push

ただし、git pull作業ツリーに変更がある間は、プル/プッシュする前に、最初にローカルの変更をcommitまたはstashする必要があります。これは、潜在的に、リモートの変更がローカルの変更と重複する場合にマージ状況を引き起こす可能性があります。

15

同じエラーが発生したので、使用した「--force」コマンドでこのトピックを解決しました。簡単に言うと、このコマンドを書きます。

git Push Origin master --force

注意:おそらく、以前に何度もコードをプッシュしようとしたため、このエラーが発生したのはこのためです。私のソリューションは、変更セットで強制的に上書きします。この方法では、リポジトリが他の人の不一致を引き起こす可能性があります。ただし、単独で作業する場合(グループ作業とは異なり)、前述のように簡単に「--force」を使用できます。

14
Purgoufr

コマンドで問題を解決できます。

git Push Origin master --force
6
Rubel Hossain

git pullは良いオプションです

しかし:git Push Origin master --forceコマンドは、問題が解決しない場合に最終的に役立ちます

2
Kurian Benoy

誰かが作業をリモートリポジトリにプッシュしたことを意味します。作業とマージするには、git pull --rebaseその後、結合した作業をリモートリポジトリにプッシュします。

2
Emil Davtyan

@tunacyはそれをうまく言いました。

誰かがリポジトリをコミットしたので、あなたはただする必要があります

git pull

そして

git Push 

それもあなたが使用できるすべてです

git merge 

マージのために

1
Sh Huzaifa

私はこれとまったく同じ問題を抱えています。友人に助けを求めたところ、彼はペーストをメインリポジトリにコピーし、以下のコマンドを書きました:git remote show Origin git add git commit -m「メインリポジトリにproject2を含む」git Push -u Origin master

最終的に、2つの異なるプロジェクトのメインリポジトリに2つのペーストを取得しました。

1
Loiane Cabral

Gitでの作業を開始するとき、ドキュメントを少し見てみましょう: http://git-scm.com/doc 。私が理解したあなたの説明から、あなたは他のクラスメートと共有されるファイルを含む既存のリポジトリを持っています。したがって、最初にプロジェクト全体(すべてのファイルを含む)をプルする必要があります。ローカルリポジトリにプロジェクトの最新バージョンがある場合、リポジトリにコミットの変更をプッシュできます。

0
Mateusz

! [rejected] master -> master (fetch first)'
使用する: $ git pull
その後:$ git Push
代替ソリューション:$ git Push --force Origin masterただし、これによりgithubリポジトリ内のファイルが削除されるため、最初にファイルをローカルリポジトリにプルしてから、作業をプッシュできます。

0
user10096908

間違ったディレクトリでterminal/GitBashを開いたときにこのエラーが発生しました。実際にはリポジトリフォルダーの外。正しい場所にいるかどうかを確認してください。

0
JEJC