初めに
学習中躓いた部分をまとめアウトプットしていきます。
初心者にも分かりやすいように書いていきます。
背景
* リモートリポジトリにpushを行った。
その後コミットメッセージを修正したいと思い、git commit --amendを実行してコミットメッセージの修正を行う。
修正後git pushを行うも以下のメッセージが現れる。
! [rejected] replace -> replace (non-fast-forward) error: failed to push some refs to 'https://github.com/kyohei682474/resume.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.
pushに失敗している
更新が拒絶されている。なぜならあなたのローカルのブランチが遅れているリモートのブランチよりも遅れているから
そのリモートの対応する部分。リモートの変更を統合しなさい
プッシュする前にpullを行いなさい。
結論
git push後にgit commit --amendはやってはいけない。
git amendはコミットを修正して新たにコミットメッセージを書き換えるのでリモートにpushしたメッセージよりも1段階戻してそこから新たにコミットしたことになるのでamendした後にpushをしてしまうと競合が起きる。
解決策
git resetを行う。
git reset origin/ブランチ名を実行する。
新たにコミットを作成する。
新たにコミットメッセージを作成後にpushを行う。
まとめ
git pushを行った後git amendを行いpushをすることはできない。
リーカルでresetを行い、amendを行ったよりも前の状態に戻す。
他にもあるが今回は一番やりやすい方法で行った。