画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

引数を持たないgit pushについて

今までpushする時はちゃんと

git push origin hoge

とリモートと、ブランチ名をセットで律儀に書いてた。 そろそろめんどくさいなぁと思って来たので、 省略するのどうするのか?と調べてみた。

http://dqn.sakusakutto.jp/2012/10/git_push.htmlhttp://www.yunabe.jp/docs/relearning_git_push_default.htmlhttp://qiita.com/awakia/items/6aaea1ffecba725be601

この辺がわかりやすかった。

注意したい事は以下

  • 省略した場合の挙動は、5つのパターンがる。
  • 一番危ないのがmatchingになっている時。しかも、gitの1.x系ではこれがデフォルトになっているからやっかい。
  • すぐにgit config --global push.default simpleをしてリスク回避推奨

simpleモードにしたけど、すぐにcurrentモードにした

これは、upstreamが設定されていて、なおかつ、 リモートに同じブランチが存在している時に発動する。

simpleという名前に惹かれたけど、ローカルでブランチ切って、一番最初にpushする時に、

git push -u origin hoge

という風にしなきゃいけない。じゃないと、upstreamが設定されないし、 リモートにブランチが作られない。

ちょっとした細かい変更をpushしてプルリク出して、とかするケースがあって、 それなりにめんどくさそうだった。。。

なので、currentモードに!

基本的に現在のブランチ名をそのままリモートにpushする事以外ないので。 これで結構楽になるかなー。

気をつけない事

普段使うgitのバージョンは2系だし、currentモードにする設定を入れるから問題なし。

でも、違う環境を触る時にいつもの癖でgit pushとかやってしまうと、 なんかミスが起きそう。。。(汗)