git pushがリジェクトされる。
Last update
2018/11/04(日)
目的
今回、commitしたファイルがバグありで出してしまったのでcommitを修正したいということでcommitの修正からそのPushまでです。 今回の記事は記憶で書いてます
参考資料
作業内容
まずはじめにローカルcommitの修正から行います。 今回修正するコミットは直近のコミットだったのrebaseでvimが起動させます。
その後vimに表示されるコミット情報の先頭に表示されている「pick」を「exit」に変更します。 (すみません…ここはevidenceなしです…参考資料参照してください。)
$git rebase -i HEAD^
vimで変更後コミットの内容を変えていこうと思います。
まずは通常通りaddしたあとrebaseします。
コミットの内容も変更する場合は、git commit --amend
を使ってコミットメッセージを変更します。
コミットを変更したら、次はPushをします。
今回のpushでは、オプションでfを使います。
$git add index.html $git rebase --continue $git push -f origin master
今回のような場合、オプションなしでPushを行うと下記のようなエラーが出る場合があるので、オプションをつけてPushします。
error: failed to push some refs to 'git@<URL>' 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.
これでリモートとローカルでコミットを変更できました。
補足
今回はオプションでfを使いましたが、このオプションは強制的にプッシュするため、本来はあまりよろしくないようです。