コミットノート
コミットメッセージは一度書いたら凍結されます。変更すればコミットは書き換えられ、 新しいハッシュになり、古い方をすでに持っている全員が壊れます。コミットの 1 時間後 なら問題ありませんが、1 週間後には不可能です。
git notes がその逃げ道です。ノートはコミットの そば に、refs/notes/commits
の下に保存され、付けてもコミットは 1 バイトも変わりません。だからすでに公開された
履歴にも効きます — そしてそれこそ、何かを付け足したくなる場面そのものです。
典型的な使い道は、承認したレビュー、閉じたチケット、なぜ取り消したのか、どのリリー スで出荷されたか、といったものです。
書く
コミットを選びます。メッセージの下に ノート のセクションがあります。ノートを 追加 を押し、入力して、ノートを保存。複数行でも構いません。

ノートの保存は Gitcito の普通のアクションです — トーストが出て、取り消し で前の テキストに戻ります。削除したノートを復活させることも含めてです。
テキストを空にして保存すればノートは削除されます。空のノートというものは存在しま せん。
見つける
ノートは普通のログでは見えません。それが、みんながノートに一生気づかない主な理由 です。Gitcito はノートを持つコミットに、グラフのメッセージ列で小さなノートアイコン を付けるので、そこにあると知らなくても注釈を見つけられます。
コマンドラインからは、git log --notes が各メッセージの下にノートを表示します。
共有する
ここが全員を驚かせる部分です。普通の git push はノートをプッシュせず、普通の
git fetch はノートを取得しません。 ノートは refs/heads や refs/tags の外に
あるので、既定の refspec は完全に素通りします。あなたのノートパソコンで書いたノート
は、誰かが明示的に移すまで、そのノートパソコンに留まります。
ツール → ノート → ノートをプッシュ / ノートを取得 を、リモートごとに。実行 されるのはこれです。
git push <remote> refs/notes/commits
git fetch <remote> +refs/notes/commits:refs/notes/commits
移動するのはコミットノートの ref だけです — Gitcito 自身のマシンローカルな ref (ローカル CI の判定など)は、意図的に公開されません。
ホスティングサービスによっては、向こう側でノートを有効化・許可する必要もあります。 そこでの拒否はホスト側のポリシーであって、Gitcito の制限ではありません。
共有リモートがない、あるいは書き込み権限がない? 安全な共有 なら、リポジトリのノートを暗号化ファイルに詰めて、チームメイトが直接インポート できます。何が入るかのプレビュー付きで、分岐したノートには明示的な上書きの選択が あります。
制限
- ノート ref は 1 つだけ。 Gitcito が読み書きするのは既定の
refs/notes/commitsです。独自の名前空間(git notes --ref=review)は公開されて いません — それを使っているリポジトリでは、そのノートはここでは見えません。 - 分岐したノートのマージはできません。 2 人が同じコミットに注釈を付けて両方が
プッシュすると、git は 2 回目のプッシュを拒否します。それを解決するには
ターミナル で
git notes mergeを実行することになります。 - ノートは purge のバックアップでも スナップショット でもバックアップされません。 ノートは普通の ref なので通常の操作では残ります が、一から clone し直したリポジトリにはノートがない状態で始まります。