目的
- git push実行時に起きたエラーについてまとめて今後同じことが起きても焦らないようにする。
経緯
- githubにpushした。
- 草が生えていないことを確認した。
- ローカルリポジトリのgit configにメールアドレスが設定されていないことを確認した。(githubは設定されたメールアドレス情報でpushしないと草が生えない)
- git configでメールアドレスを設定した。
- pushした環境でコマンド
$ git commit --amend
を実行してしまった。 - push時に下記のエラーが発生した。
git push
To github.com:miriwo0104/Qiita.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:miriwo0104/Qiita.git'
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.
エラーを解決するには?
- コミットをする前にリモートの内容pullする。
- マージコミットとしてローカルからリモートにpushする。
原因
一度リモートにpushした環境で$ git commit --anemnd
を実行してしまった。
- 簡単に言うと、すでにpushしているコミットが見ている親コミットをamendしたコミットが見てしまってる。
- コミットの歴史がローカルとリモートで異なるためにエラーが発生した。
どうすべきだったのか?
- リモートにpushした内容はamendしない。
- pushしたコミットを一度revertしてコミットをやりなおすべきだった。