作業用のブランチを切って作業していて、作業が終わったので 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 の方がコミット歴がよごれないのですき。