1. ホーム
  2. ギット

undefined! 却下】マスター→マスター(取り込み優先)問題の解決法

2022-02-08 01:50:14
<パス
<パス

! rejected] master -> master (fetch first)問題の解決法

今日、git push をしているときに以下のようなエラーが発生しました。

原因を分析すると、基本的にはgithub上のリモートライブラリのバージョンがローカルと違うからだと判断し(github上のファイルの編集を行い、ローカルでは更新しなかったのですが、もちろん他の理由もあるでしょう・・・)、いろいろ調べた結果、2つの解決策が見つかりました。

優しい解決策

  1. git pull でまずローカルリポジトリをリモートリポジトリと同じバージョンに更新しますが、後からローカルリポジトリに加えた変更は上書きされる可能性があることに注意してください。git fetch(自動的にマージされない)を使って更新をチェックし、その後マージを選択できるようにするか、ローカルリポジトリで変更したファイルをまずバックアップし、git pull してから再修正するのがよいでしょう。
  2. 成功したら再度git pushを実行します。

暴力的なタイプのプログラム。

  1. git には強制的にアップロードする方法があります。git push -fは、バージョンの不整合などを無視してローカルリポジトリをリモートリポジトリに強制的にアップロードしますが、-fはリモートリポジトリをローカルリポジトリに上書きしてしまうため、リモートリポジトリに重要な更新や他の仲間が行った変更がある場合はそれらも上書きしてしまうため、この操作は深刻な結果にならないように注意することが必要です。そのため、この操作は重大な影響がないことを確認した場合にのみ使用するようにしてください。