jj 是 Jujutsu 的命令列介面 (CLI) 名稱。Jujutsu 是一個分散式版本控制系統 (DVCS)。您可能熟悉其他的 DVCS,例如 git,本教學假設您是從 git 轉向 jj 的使用者。

那麼,您為何應該關心 jj 呢?嗯,它在程式設計領域擁有一個相當罕見的特性:它同時比 git 更簡單、更容易上手,但同時又更強大。這是一個相當重大的宣稱!我們經常被教導,在做選擇時存在取捨,這是正確的。「強大但複雜」是非常常見的取捨。這種強大是值得的,因此人們紛紛轉向 git 而非其前身。

Jj 成功地創造了一個 DVCS,它結合了 git 的優點、Mercurial (hg) 的優點,並將它們融合成一個新的、卻又奇異地熟悉的事物。在這樣做的過程中,它設法減少了核心工具的數量,同時讓它們更強大,因為它們以更清晰的方式協同工作。此外,更進階的 jj 用法可以在您的版本控制系統沙盒中提供額外的強大工具,這在 git 中非常困難。

我知道這聽起來像是一個重大的宣稱,但我相信本教學的其餘部分將向您展示原因。

您應該對嘗試 jj 還有另一個原因:它有一個與 git 相容的後端,因此您可以獨立使用 jj,而無需要求您合作的任何人也進行轉換。這意味著嘗試它沒有真正的缺點;如果它不適合您,您也不會放棄您用它寫下的所有歷史記錄,並且可以毫無問題地直接回到 git。