ローカルで一区切りついたリポジトリをリモートに push し、その後も開発を続けておりました。
再び一区切りつきましたので、再度 push しようとしたところ、エラーです><。
今回はそんな状態から無事にリモートリポジトリへ push できるようになったところまでの記録をノートいたしました!
ポイント
- 作業用フォルダをクリーンな状態、
git statusで何も変更が表示されない状態、にしてから操作する。そうすれば、失敗してもこの状態に戻ることができる。 - ローカルリポジトリとリモートリポジトリを繋いだ状態にするには、ローカルブランチにリモートブランチから fetch → merge する。このとき、作業用フォルダの状態は、fetch する前のローカルの状態になるように作業する。 merge は一筋縄では行かないことが予想されるので、pull ではなく、fetch → merge と少しずつ進める。
- その後、push できるまで開発などを進め、リモートリポジトリへ push する。
問題の発生した状況
$ git push origin master To http://111.11.1.1/gitremote/origin ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'http://111.11.1.1/gitremote/origin' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e. g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
