git pullするとき設定しておきたいこと

$ git pull origin master

何気なくこのコマンドを使っている人も多いのではないでしょうか。 個人的にはこのコマンドは便利なので、使っていきたいと考えています。 ただ注意しておきたいのは、マージコミットができるかもしれないことです。

マージコミットができるとき

masterremote/origin/master にはないコミットがある場合です。

普通にしておけば、遭遇しないように思えます。

しかしながら、誤ってコミットを master にしてしまった場合や、 git pull origin master でmergeコミットが生じた場合には、

ローカルにしか存在しないコミットができてしまいます。

その場合、意図しないコミットがmasterに付きまわってしまうのです。

マージコミットを作らない方法

git pull origin master を行ったタイミングで、コミットメッセージが立ち上がる。 そんな経験はありませんか?そのときはマージコミットが余分にできてしまっています。

ローカルにあるブランチに余分にコミットができてしまっているのです。 そのコミット内容にもよりますが、それをpushしちゃうなんてことがあると危険ですよね。

$ git fetch && git rebase$ git pull --rebase #もしくは
$ git fetch && git merge --ff # merge派の場合$ git pull --ff origin master

上記でマージコミットができないようにする。 これらは、設定で回避することができます。

git config にこれらどちらかの設定を書いておきましょう。

git pull でマージコミットを作らないようにnoffのマージを禁止しちゃう

[pull] ff = only

git pull でマージコミットを作らないように rebase で取得する

[pull] rebase = true

特に注意したいブランチだけの場合は、masterとdevelopにしておきましょう。

[branch "master"] rebase = true