箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

Updates were rejected because the tip of your current branch is...が出たとき

f:id:y_hakoiri:20191102121618j:plain

gitを使ってるとたまにこんな場面に遭遇する。

Updates were rejected because the tip of your current branch is behind its remote counterpart. Integrate the remote changes (e.g. 'git pull ...') before pushing again.

すでにリモートにプッシュ済みのブランチで、再度修正を加えようと思った時とかにプッシュできず、出てきたりします。

自分がリモートにプッシュしたより後に他の人がリモートのmasterにマージしたり、もしくはコンフリクト解消したりして、ローカルのブランチと差分が発生していてこのままだとプッシュできないよ、っていう状況。

以下解決方法です

1.git pull

英文の指示通りに最新のリモートをpullしてくれば良いだけ!

ちなみにgit pullはgit fetch(差分をとってくる)とgit merge(マージする)を一気にやる命令なので、もちろんpullじゃなくてfetch+mergeをやってもOK。

2.vimが立ち上がる

この状態でgit pull(merge)すると、vimが立ち上がります

初心者のうちはいきなりvimが出てくるとそれだけで焦るんだよなwでも難しくないから焦らなくて大丈夫。

vimを見ると「コミットメッセージを入れてね」的なことが書いてある。mergeもコミットの一つなので、今回pullしてきてリモートを取り込んだことをコミットメッセージに残しなさい的な感じかな。私はいつもコミットメッセージ入れずにそのまま保存して終わらせてます。

コミットメッセージを何も保存しないと、

Merge branch 'hogehoge' of https://github.com/******* into hogehoge

っていうメッセージが自動的に適用されますが、ほかの人が見ても事情はすぐ伝わると思うので。。

ちなみに、どうせメッセージ指定しないならvim立ち上げたくないな。。。っていう場合は

git pull —no-editでvimを立ち上げずに速攻pullできます。

参考

git pushがrejectされたときの対処 - Qiita