「NOCOMMIT」アノテーションを活用してコミットミスを減らす
TODO
や FIXME
などのアノテーションコメント(もしくはコメントタグ)はみんなよく使ってると思いますが、自分は NOCOMMIT
というものも使用します。
意味は単純で、コミットするべきでないデバッグ用のコードなどの行に書いておきます。
var SecretToken = "HARD_CODED" // NOCOMMIT
TODO
でも良いのですが、 TODO
を単にデバッグ用の行などに付けると意図が伝わりづらい感覚があります。 TODO
とだけ書いてあっても一瞬「なにをすべきなんだっけ?」となりますし、ちょっと頑張って TODO: delete
って書いてあったとしても「何かを削除する処理を足さなければならないんだっけ?」と誤解する可能性があります(TODO: delete this line
なら完璧ですが)。なので自分は NOCOMMIT
のほうが性にあっていました。
これをコミット時に感知するGit HooksをGit Templateに追加しておけば、以降 clone/init するリポジトリに関してはいい感じになってくれます。
~/.config/git/templates/hooks/pre-commit:
#!/usr/bin/env bash
if git diff --staged | grep NOCOMMIT >&2; then
echo "The diff has NOCOMMIT line." >&2
exit 1
fi
~/.config/git/config:
+[init]
+ templatedir = ~/.config/git/templates
余談ですが最近よく go.mod の replace ディレクティブに使っています。
require (
...
github.com/acomagu/hoge v0.3.0
)
replace github.com/acomagu/hoge => /home/yuki/.local/src/github.com/acomagu/hoge // NOCOMMIT