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