1. ホーム
  2. eclipse

[解決済み] Egitはファストフォワード以外を拒否

2023-01-17 07:34:42

質問

githubリポジトリにプッシュする際に、このメッセージが表示されます。 修正するためのステップバイステップの手順を教えてください。 私は一度だけプッシュし、それは成功しました。しかし、プロジェクトを更新し、2回目のコミットをプッシュしようとすると、 "master rejected non-fast-forward" と表示され、プッシュすることができません。 手順を説明してください。

どのように解決するのですか?

afk5min の言うとおり、問題はコードを取得したブランチがリモートリポジトリ上で変更されてしまったことです。 標準的な git のプラクティスに従って ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes ) に従って、コミットする前にリモートリポジトリでの変更をローカルでの変更にマージする必要があります。 これは理にかなっており、他の人の変更を取り込んで自分のコードにマージし、自分のコードが他の変更と同じように機能し続けることを確実にするためです。

とにかく、ステップに進みましょう。

  1. fetch」で、元々pullしたブランチを取得するように設定します。

  2. リモートブランチをフェッチします。

  3. そのリモートブランチをローカルブランチにマージします。

  4. (マージ)した変更をローカルリポジトリにコミットします。

  5. 変更をリモートリポジトリにプッシュします。

詳細には...

  1. eclipseで、'Git Repositories'ビューを開いてください。

  2. ローカルリポジトリが表示され、リモートリポジトリがサブフォルダーとして表示されることを確認します。 私のバージョンでは、それはRemotesと呼ばれ、その中にリモートプロジェクトを見ることができます。

  3. 左を指す緑の矢印を探します。これは「フェッチ」矢印です。右クリックして、「Configure Fetch」を選択します。

  4. URIが表示されるので、それがリモートリポジトリを指していることを確認します。

  5. ポップアップの ref mappings セクションを見てください。 私のは空でした。 これは、どのリモート参照を取得したいかを示します。 追加」をクリックします。

  6. リモートリポジトリから取得する必要のあるブランチ名を入力します。 私のは 'master' でした (ここにドロップダウンがあると最高です!!今のところ、入力する必要があります)。 ポップアップを続行し、最終的に 'Finish' をクリックします。

  7. Save and Fetch'をクリックします。 これにより、そのリモート参照がフェッチされます。

  8. ローカルリポジトリの'Branches'フォルダーを見てください。 これで、そのリモートブランチがリモートフォルダに表示されるはずです。 ここでも 'master' が見えます。

  9. Branches' の 'Local' フォルダーにある 'master' という名前のローカルブランチを右クリックします。 マージ] を選択し、'origin/master' という名前のリモート ブランチを選択します。

  10. マージを処理します。

  11. ローカルリポジトリに変更をコミットします。

  12. 変更をリモートリポジトリにプッシュします。

  13. 自分自身を祝福しながら、おいしい飲み物を飲んできてください。 あとは休んでください。