Gitのおすすめ設定。pull.ff onlyでpullを便利に

投稿日
Gitのおすすめ設定。pull.ff onlyでpullを便利に

Gitのおすすめ設定の1つに git pull時にfast-forward onlyで実行する、というものがあります。

~/.gitconfig
[pull]
    ff = only

検証した環境

1 git 2.32.0

git pullにfast-forward onlyを設定する

git pullはデフォルトだと

fast-forwardを実行しようとして、出来なかった場合にマージコミットを作成しようとします。


↑ の動画の7,8秒辺りの部分でマージコミットが作られているのが分かります。



fast-forwardしてくれるのはありがたいけど、

マージコミットを作るつもりがなかったのに作られてしまった、となると面倒ですよね。




そこで 意図しないマージコミットを作らないよう回避する手段が--ff-only というオプションになります



—ff-onlyを設定する

git pull時に--ff-onlyオプションを設定すると、

fast-forwardでマージできる状況ではfast-forwardでのmergeを、そうでなければfetchのみ行う

となります。


↑の場合先ほどと違ってmergeが行われず、最終的にaborting.(中断)となります。

$ git pull --ff-only origin HEAD
From ssh://github.com/meganedogYuu/pr-sample
 * branch            HEAD       -> FETCH_HEAD
fatal: Not possible to fast-forward, aborting. #fast-forwardが実行出来なかったため中断された


—ff-onlyをデフォルトで実行されるようにする

git pull時に--ff-onlyを設定すると便利ですよー、という事をつらつらと書いたわけですが、

エンジニアたるもの良さそうなオプションは当然デフォルトで設定したくなります。



デフォルト設定にする場合~/.gitconfigを編集するか

~/.gitconfig
[pull]
    ff = only


下記コマンドを実行する事で設定できます。

$ git config --global pull.ff only
プロフィール画像
Yuki Takara
都内でフリーランスのエンジニアをやってます。フロントとアプリ開発メインに幅広くやってます。