みたいな形で表示されます。これを解決して commit すれば問題解決。
しかし、複数部分が conflict していると、たまにこの線を commit することがあります。つらい。
それを阻止したいのですが、人の手でやることでは無いので自動化します。
man githooks
- $ man git
- とりあえず man を読む。
- /hook とかすると githooks というものがあると。
- $ man githooks
- $GIT_DIR/hooks か core.hooksPath/* のファイルを読み込むと書いてあります。
- hooksPath を設定してみます。~/.gitconfig あたりに
- を追記。
- たぶん git confing --global とかでもできる。
- 実際やることは ~/.gitconfig への書き込みだから同じなのだけれど。
- これで全リポジトリに対する設定終わり。
- ~/.config/git/hooks/pre-commit を書く
- こんな感じかな。参考とか。
- これで commit 前に <<<<<< などの線があったら警告してくれます。
- 実際は単なる shell script ですね。hook なので特定の action があった時に起動してれる感じ。
- ちなみに git init したリポジトリの .git/hooks/* あたりを見ると sample があったりします。
動作サンプル
さて実際はどう動くかと言うと、こんな感じ。
commit したのに status が clean になってませんね。
これでミスって merge を解決し忘れたファイルを commit することも無いでしょう。めでたしめでたし。
これでミスって merge を解決し忘れたファイルを commit することも無いでしょう。めでたしめでたし。
おまけ
ソースにどうしても <<<<<< などの線を入れたい場合は
- $ git commit --no-verify
とか使うと良いようです。
この hook を足す commit そのものが hook に引っかかったので使いました。