技術と魚

技術屋ですが経営もやってます

なぜブランチを「切る」と言うんだろうか?

Gitで新たにブランチを作るとき、ブランチを「切る」と言う。しかし、やっていることはむしろ「生やしている」のだから、真逆と言ってもいい。もしも英語で "cut a branch" などと言ったら、「お前の作業ブランチは切り落として無かったことにしろ!」になってしまうかも。直訳しないように注意しよう。(もちろん英語は"create a branch")

なぜ「切る」になったのか。その背景を私のほとんど根拠のない妄想で解説していきたい。

"きる" =(他と異なって)物事をする (広辞苑)

広辞苑を調べて近しく感じたのはこの意味。「先頭を切る」「口を切る」「ハンドルを切る」のように、他/あるいはそれまでと違う方向になにかをする行為に対し「切る」を使う。 ただ、これらの切るは比較的具体的な状況の中での行為を指しているので、「ブランチを切る」が作業を始めるといった意味を常に示しているのであれば確実性は高いかもしれないが、現実には単に「作成」を指しているだけのシチュエーションも多いので、少しばかり示したい意味に対して解釈がオーバーすぎる印象がある。

「切り出す」が短くなった説

事業とか作業とかの一部分を独立させる・スピンアウトさせる、といった意味で「切り出す」と表現することがある。「ブランチを切り出す」でも別段意味は通じる。改めて"切る"と比べてみると、「切り出す」の方が若干の"分厚さ"のようなものがなくもないが、日常会話では「切り出す」でも十分自然ではないかと思う。木材などを「切って運び出す」っといった意味でも使われるので、本流から持ち出すというcheckoutのニュアンスも含みうる。 全体的にニュアンスは近いように思うけど、「切り出す」の場合、切り出し元の一部分が削れている印象があるところが違和感が残る。もちろんブランチを切っても元のブランチにはなんの影響もない。

チケットを切る(作成する)が転用した説

課題・タスク管理ツールでチケットの作成を「切る」と言う。そもそもなぜチケットを「切る」のかも実はよく分からないところはあるが、伝票のような紙で管理されたものは「千切(ちぎ)って」起票していたことを考えると、「切る」は「ちぎる」の進化版なのかもしれない。それでチケットを「切り」慣れたエンジニアが、チケットに対応する形でブランチを「切り」始めた、というのがこの説である。明日は職場で「ブランチ新しく千切っといて!」と言ってみると面白いかもしれない。

ブランチの「切り替え」コマンド説

ブランチを「切る」とき git checkout -b を使うと思う。checkoutはブランチ「切り替え」でもある。私達は日々checkoutして(=「切り替え」て)いて、そのなかでたまに「替え」がないのが"作成"であった。しかし同じコマンドであるがゆえに表現が近いものが選ばれ、「切る」になった。いやはや、さすがに強引すぎるか。

枝に切れ目を加えて分かれる様子を表す説

棒に切れ目を入れ、そこを引っ張るとグイーっと枝分かれしたような感じになるあれ。絶対違う。

まとめ

結論は妄想なのでわかりません。 「切る」が何となくコミュニケーションにフィットしてしまう日本語は不思議。明日はブランチを切ろうか、それとも生やそうか、伸ばそうか、千切ろうか