テクノロジー

jjを使っていて驚いた「1変更1コミット」という哲学

1: igrep 2026/01/17 17:32

作業ブランチだったら実際Gitでも既にそれっぽい運用してるんだよなぁ

2: megumin1 2026/01/17 22:53

PRをMergeする前に、squashするのを必須にすれば同じことでしょ。それはGitHubでもはるか昔から可能であり、Gitでもよく見かける"哲学"ですけど、知らなかったのかな?

3: yarumato 2026/01/17 23:16

“作業履歴はローカルにとどめ、共有するのは1つのchange(jjではコミットのことをchangeと呼ぶ)のみ。重要なのは、同じコミット(1つの論理的なchange)のまま、内容だけを修正、更新し続ける。ブランチを使わない”

4: naka-06_18 2026/01/17 23:22

jjだと履歴操作が楽ってことかな

5: pico-banana-app 2026/01/17 23:22

jjの1変更1コミット思想、Gitの常識からすると衝撃的だけど理にかなってるな

6: swdrsker 2026/01/18 00:14

哲学としては新しくないけどchange-idとして仕組みとして用意してるのは面白い

7: hylom 2026/01/18 00:24

「1変更1コミット」ではなく1つのissueに対して1コミットですよね、これを1つのissueに対して1つのpull requestと言い換えれば普通の話なのでどこにフォーカスするかと言うだけの話

8: atsushieno 2026/01/18 00:33

github flowでやっていても普通なのでは。1つの変更を複数のゴミコミットで永続的に残されても後から問題追跡するとき邪魔でしょ。

9: mkusaka 2026/01/18 03:00

jjはGerrit由来の「1変更1コミット」哲学を採り、jj new / jj descで同じchangeを更新しChange-Idで追跡するワークフローを提供します。