“error: failed to push some refs to…”といったpushの失敗原因
! [rejected] HEAD -> sample (non-fast-forward)
error: failed to push some refs to 'https://github.com/xxx/sample.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.
大体の原因はリモートブランチとローカルブランチに差分があると"non-fast-forwardgit"
と拒否されるそうです。なので対象のリモートブランチをpull
してから再度push
すると解決します。
#例
git pull origin "Branch_Name"
#mainブランチの場合
git pull origin main
基本的には上記のようにpull
してあげると現在の変更点とリモート側の内容を差分確認できます。
リモートブランチ名の確認はgit branch -r
で確認できます。実行するとorigin/main
といった感じに一覧表示されますがgit pull origin/main
としないように。
またpull
以外でmerge
でもできます。その場合は下記のように実行します。
git merge origin/main
現在の変更内容を取り込みたい場合やリモートブランチの内容を取り込みたい場合があるかと思います。その場合は上部にボタンがあるので選択することで内容を取り込むことができます。
- 現在の変更を取り込む…ローカルブランチの内容を取り込む
- 入力側の変更を取り込む…リモートブランチの内容を取り込む
- 両方の変更を取り込む…両方の内容を取り込む
- 変更の比較…エディタの差分チェックが開かれる
上記のどれかを取り込んでから再度pushすると問題なくpushできました。