ロゴテキスト ロゴ

    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
    都内でフリーランスのエンジニアをやってます。フロントとアプリ開発メインに幅広くやってます。