インフラエンジニアbacchiのわかったことまとめ

bacchi.me

git push が reject されたときの対処について

作業用のブランチを切って作業していて、作業が終わったので git push を実行したところ、下記のエラーが起きて git push が reject されました。

% git push origin bacchi
To git@hoge.com:bacchi.git
 ! [rejected]        bacchi -> bacchi (non-fast-forward)
error: failed to push some refs to 'git@hoge.com:pfg/hoge.combacchi.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.

こういう場合は、hint にあるように、

git pull

したり、

git fetch
git merge origin/master

や、

git fetch
git rebase origin/master

することで問題が解消され、git push できるようになることが多いです。

ただ、今回のケースではそれでも解消されませんでした。

こういう場合は git pull の指定先を master ブランチではなく、作業ブランチを指定してあげないとだめみたい。

作業ブランチが bacchi として、このエラーがなかなか直らないときは

git pull origin bacchi

と実行してみましょう。

# 個人的には git pull xxx や git merge xxx より、git rebase xxx の方がコミット歴がよごれないのですき。

  • B!