ローカルで一区切りついたリポジトリをリモートに 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.