概要
タイトル通り。
❯ git push origin branch-name To github.com:XXXXXXXX.git ! [rejected] my-ls -> my-ls (non-fast-forward) error: failed to push some refs to 'github.com:XXXXXX.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.
ここのエラー文にも書いてあるし、ぐぐれば出てくるんだけど、ちゃんとpullすればよいみたい。 でも、「pullしても上手くいかねえよ!?」となったので、記事に残しておく。
pullしてもうまくいかない
❯ git pull hint: Pulling without specifying how to reconcile divergent branches is hint: discouraged. You can squelch this message by running one of the following hint: commands sometime before your next pull: hint: hint: git config pull.rebase false # merge (the default strategy) hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details. git pull <remote> <branch> If you wish to set tracking information for this branch you can do so with: git branch --set-upstream-to=origin/<branch> my-ls
これでpullした気になっていた。俺のばかばかばか!!!
エラーにも書いてある通り、git pull <remote> <branch>
でpullしなきゃだめ。
コード編集する前に一回pullしておこう
今回の教訓。
コミットが汚くなっていたので、git reset -hard ^HEAD
とかしまくっていたら、編集したところ全て消えてもとに戻ってしまった。
「pushしたらrejectされた!」ってなる前に、ちゃんとpullをしておいてから編集をしましょう。
そもそも何でこんな目に合ったかは解明できず(前回pushしてから何も触れてないはずなのに)