Git pullしたらGitから怒られた場合の対処法
どうも!いつも妖気なベル子です☆
「ようき」って打ったら一番最初に「妖気」って出るのおかしいと思うの。
そんなに日常的に「妖気」って使わないよねー。
それともあれか、お前はこっちだろ的なG○○gleからの圧力かな?
ということで、最近ベル子も大人の女性になってきたので、
「プルリクしたんでチェックおなしゃーす!」と言われることがあります。
プルリクって何かな?という人のために解説すると
「あなたの作ってるコードをこういうふうに修正してみたんだけど、これをマージして欲しいの!見てみて!」
というリクエストを投げることです。
詳しいことは私のブログなんかより、詳しい記事を参照してくれたまえ。
http://www.backlog.jp/git-guide/pull-request/pull-request1_1.html
そして、そのコードがよさ気だったらマージできるし、
「ダサくて汚いからムリ!」だったら却下できるという画期的なシステムです。
というわけで、プルリクが来たのでひととおりチェックし、コメントします。
べ「もうーちょっと男子ー。そこマジックナンバーじゃーん。変数に入れてよー。」
男子「・・・修正しました。」
よしよし、それでまたgit pullして、、、、と思ったらgitに怒られる。
べ「ふが!また、やっちまったぜ」
そうです。
私がよくやってしまうミスとして
リモートブランチに出来た新しいブランチのコードを以下のように持ってきてしまいgit pull時に怒られるというミスがあります。
何度もやっているのに、ついついやってしまうので、
戒めのためにブログに記しておきます。
git pullのみ(引数なし)でリモートのブランチをpullするには
上流ブランチが設定されていないとなりません。
そして、
リモートブランチを上流ブランチに設定する方法は以下の3つだ!!
Git 1.7.0
Git 1.8.0
カレントブランチを紐付ける場合:
カレントブランチじゃないブランチを紐付ける場合:
※-uで上流ブランチの設定をするのは初回の1回でよい。その後はgit pushで引数いらない。
教訓
これで怒られなくなり一安心です。
ついでに、チェックしてマージしてリモートブランチを削除したあと
自分のローカルをキレイにする手順を紹介します。
これをやらないと、プルリクをたくさんもらうようになるとローカル環境がわけ分からなくなります。
プルリクのトピックブランチをマージ&削除したら必ずローカルもリモートと同じようにブランチを削除しておきましょう。
1.どんなブランチがローカルにあるのか確認
2.リモートで削除されたブランチをローカルのリモートブランチからも削除する
3.どうなったか確認する
4.develop(開発本流)に切り替える
5.マージされたリモートのコードを落としてくる
※ここでマージされたコードをgit pullしておかないと次のブランチ削除コマンドで以下のように怒られる
6.プルリクに使ったトピックブランチをローカルから削除
7.どうなったか気になる
なーーーーーーーーーーーーい!!!!!!!!!全部きれいさっぱりなくなったよ!!
ということで、この手順で昔のことはキレイさっぱり忘れてしまいましょう。
そうです。
昔の彼のことなんて思い出してもいいことなんて何もない。
あのとき別れなければと思って、また付き合ったとしてもどうせ別れることになるんです。
花はミツバチを追いかけますか?
NO!!!!否!!!!!!
飛んでったミツバチのことなんて、追いかけない。
そう、35億。Yes、35億。
ということで皆さんも、
gitに怒られないハッピーライフを送ってくださいねーー♪
「ようき」って打ったら一番最初に「妖気」って出るのおかしいと思うの。
そんなに日常的に「妖気」って使わないよねー。
それともあれか、お前はこっちだろ的なG○○gleからの圧力かな?
ということで、最近ベル子も大人の女性になってきたので、
「プルリクしたんでチェックおなしゃーす!」と言われることがあります。
プルリクって何かな?という人のために解説すると
「あなたの作ってるコードをこういうふうに修正してみたんだけど、これをマージして欲しいの!見てみて!」
というリクエストを投げることです。
詳しいことは私のブログなんかより、詳しい記事を参照してくれたまえ。
http://www.backlog.jp/git-guide/pull-request/pull-request1_1.html
そして、そのコードがよさ気だったらマージできるし、
「ダサくて汚いからムリ!」だったら却下できるという画期的なシステムです。
というわけで、プルリクが来たのでひととおりチェックし、コメントします。
べ「もうーちょっと男子ー。そこマジックナンバーじゃーん。変数に入れてよー。」
男子「・・・修正しました。」
よしよし、それでまたgit pullして、、、、と思ったらgitに怒られる。
You asked me to pull without telling me which branch you want to merge with, and 'branch.new_branch.merge' in your configuration file does not tell me, either. Please specify which branch you want to use on the command line and try again (e.g. 'git pull'). See git-pull(1) for details.
べ「ふが!また、やっちまったぜ」
そうです。
私がよくやってしまうミスとして
リモートブランチに出来た新しいブランチのコードを以下のように持ってきてしまいgit pull時に怒られるというミスがあります。
$ git fetch $ git checkout -b new_branch $ git pull origin new_branch
何度もやっているのに、ついついやってしまうので、
戒めのためにブログに記しておきます。
git pullのみ(引数なし)でリモートのブランチをpullするには
上流ブランチが設定されていないとなりません。
そして、
リモートブランチを上流ブランチに設定する方法は以下の3つだ!!
設定方法 1.
怒られたから上流ブランチを後からちゃんと設定してやりたいときGit 1.7.0
$ git branch --set-upstream new_branch origin/new_branch
Git 1.8.0
カレントブランチを紐付ける場合:
$ git branch -u origin/new_branchor
$ git branch --set-upstream-to=origin/new_branch
カレントブランチじゃないブランチを紐付ける場合:
$ git branch -u origin/new_branch new_branchor
$ git branch --set-upstream-to=origin/new_branch new_branch
設定方法 2.
自分で作ったブランチのとき$ git push -u origin new_branch
※-uで上流ブランチの設定をするのは初回の1回でよい。その後はgit pushで引数いらない。
設定方法 3.
プルリクされたときや、人が作ったブランチをリモートからもってくるとき←これが正解!!!!$ git checkout -b new_branch origin/new_branch
教訓
ブランチ作成後の初回pushの際は-uオプションをつけよう
リモートのブランチを持ってくる際にpullしてくるのはやめよう
これで怒られなくなり一安心です。ついでに、チェックしてマージしてリモートブランチを削除したあと
自分のローカルをキレイにする手順を紹介します。
これをやらないと、プルリクをたくさんもらうようになるとローカル環境がわけ分からなくなります。
プルリクのトピックブランチをマージ&削除したら必ずローカルもリモートと同じようにブランチを削除しておきましょう。
1.どんなブランチがローカルにあるのか確認
$ git branch -a * pull_req_no_branch develop master remotes/origin/pull_req_no_branch remotes/origin/develop remotes/origin/master
2.リモートで削除されたブランチをローカルのリモートブランチからも削除する
$ git fetch -p 〜省略〜 123456..78910 develop -> origin/develop x [deleted] (none) -> origin/pull_req_no_branch
3.どうなったか確認する
$ git branch -a * pull_req_no_branch develop master remotes/origin/develop remotes/origin/masterリモートのpull_req_no_branchが消えた!!
4.develop(開発本流)に切り替える
$ git checkout develop
5.マージされたリモートのコードを落としてくる
$ git pull
※ここでマージされたコードをgit pullしておかないと次のブランチ削除コマンドで以下のように怒られる
error: The branch 'pull_req_no_branch' is not fully merged.
6.プルリクに使ったトピックブランチをローカルから削除
$ git branch -d pull_req_no_branch Deleted branch pull_req_no_branch (was 1234567).
7.どうなったか気になる
$ git branch -a * develop master remotes/origin/develop remotes/origin/master
なーーーーーーーーーーーーい!!!!!!!!!全部きれいさっぱりなくなったよ!!
ということで、この手順で昔のことはキレイさっぱり忘れてしまいましょう。
そうです。
昔の彼のことなんて思い出してもいいことなんて何もない。
あのとき別れなければと思って、また付き合ったとしてもどうせ別れることになるんです。
花はミツバチを追いかけますか?
NO!!!!否!!!!!!
飛んでったミツバチのことなんて、追いかけない。
そう、35億。Yes、35億。
ということで皆さんも、
gitに怒られないハッピーライフを送ってくださいねーー♪