1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[origin/私][5章]「本当の私」は、gitのどこにも無い

1
Last updated at Posted at 2026-06-23

目次

──「心をgitで管理する世界」の物語で、originは人の数だけある

4章へ

〈ショートストーリー〉

朝、母から電話があった。

「あんた、ちゃんと食べてるの。昔から、気が小さくて、無理ばっかりするんだから」

私は笑って、うん、と答えた。

母の中の私は、まだ、すぐ熱を出して寝込んでいた、あの頃の私だ。とっくに、無理くらい平気でできるようになった。でも、訂正はしなかった。母がfetchしたのは、たぶん十年以上前だ。それきり、更新していない。母は、古い私に向かって喋っている。それを直す気には、なれなかった。母のところでは、私はまだ、守られるべき子どもでいられた。


昼、会社で同僚に言われた。

「ほんと、何があっても動じないですよね。羨ましいです」

私はまた、笑ってごまかした。

動じていないわけがない。会議の前は、いつも机の下で手を握っている。ただ、会社の私は、それを見せない。落ち着いた、そつのない大人を、毎日演じている。背伸びを、続けている。同僚がfetchしているのは、その、背伸びした私だけだ。彼の中に、机の下で手を握る私はいない。


夜、恋人と電話で話した。

「あなたって、おっちょこちょいだよね。一緒にいると、肩に力が抜ける」

私は少し、黙った。

朝、母は言った。気が小さい子だと。昼、同僚は言う。物怖じしない人だと。同じ私の話をしているのに、二人の語る私は正反対だった。

どちらも、嘘じゃない。母の中の私も、同僚の中の私も、恋人の中の私も、どこかの時点のどこかの私だ。母は十年前の私を、恋人は夜の私だけを、それぞれ別の時刻に別の場所でfetchした。だから食い違う。誰も間違っていない。


電話を切って、私は自分のrepoを開いた。せめて、自分の中になら答えがあるはずだと思って。

どれが、本当の私なんだろう。

会社の枝。恋人の枝。一人の枝。どれかが「本物」で、ほかは演技、というわけではなかった。どれも、ただの文脈の枝だった。そして、それらを束ねる「これが本当の私だ」という一本の幹は ── どこにも無かった。

探して気づいた。gitには、もともとそんな特別な一本なんて無い。

母の手首にも、同僚の手首にも、恋人の手首にも、それぞれのorigin/私がいるのだろう。私には覗けない。他人のリポジトリは、覗けないから。覗けないまま、たぶん三つとも違う。同じorigin/私という名前なのに。

originというのは、ただ、gitがcloneのときに既定でつける名前にすぎない。「本物」という意味は、どこにも付いていない。みんなが、それぞれのorigin/私を本物だと思って喋っているだけだ。

そして ── いちばん足元が崩れたのは、ここだった。

私自身の中にも、本物はなかった。

私が見られるのは、今この瞬間、たまたまcheckoutしている、一つの枝だけだ。私も、自分の「全部」を一度には持てない。母が持つ私も、恋人が持つ私も、私自身には外から見えない。私は、自分のことを誰よりよく知っているつもりで ── 自分が、みんなにどう映っているかを、誰より見られずにいた。


その夜、私はもう一度母に電話をかけた。

用なんてなかった。ただ、声が聞きたかった。

「どうしたの、珍しい」と、母は笑った。母の中の十年前の私に向かって。

それでよかった。

本物の私がどこにも無いのなら。せめて、誰かの中の少し古い私がまだ大事にされている。それだけで、よかった。

母は、まだ私を無理ばかりする子だと思っている。

その夜だけは、私はその古い私にcheckoutした。「ちゃんと、食べてるよ」と、少しだけ子どもの声で。

それは、嘘で、嘘ではなかった。


〈技術ノート〉── 複数リモート

ノートは答え合わせではない。物語が嘘をついた、ちょうどその場所の地図である。

物語が嘘をついた場所

「どこかに、本物の私(source of truth)があるはずだ」── この前提が、嘘だ。

gitに、唯一の正しい版(source of truth)は、構造的に存在しない

多くの人が、originを「本物の置き場所」だと思っている。だがoriginは、git cloneしたときに既定で付くリモートの名前にすぎない。upstreamでもmomでも、好きに付けられる。どれかが本物だ、という特権は、gitの側には無い。誰かが「これを基準にしよう」と取り決めたときにだけ、その一本が、便宜上の「正」になる。約束であって、事実ではない。

だから、母の中のorigin/私、同僚の中のorigin/私、恋人の中のorigin/私は、同じ名前なのに、中身が違う。それぞれが、別々の時刻にfetchした、別々のキャッシュだからだ。名前が同じ(origin)でも、本物だと保証するものは、何もない。食い違って、当然だ。誰も間違っていない。ただ、最後に同期した時刻が、違うだけ。

そして、リモートは一つではない。関係ごとにgit remote addでき、それぞれをfetchする頻度(cadence)も、ばらばらでいい。あなたは、たくさんの人の手首の中に、少しずつ古いorigin/私として、散らばって存在している。

物語が、いちばん深く突いたこと

「私自身の中にも、本物は無かった」── これは、正確だ。

あなたのrepoにも、「全部入りのあなた」は無い。HEADは、一度に一つの枝しか指せない。今checkoutしている自分しか、その瞬間には生きられない。しかも、他人のclone(母や恋人が持つあなたの版)は、こちらから覗けない。

つまり、あなたの「本物」は、世界のどこにもmaterialiseされていない。 各リモートに散らばった、別時刻のキャッシュの集合があるだけ。一貫した一人の自分、というのは、git的には、はじめから幻想だ。

正しい名前

物語の言葉 gitの正名
母・同僚・恋人が、それぞれ持つ私 複数のremoteとorigin/私 =各人のrepoに、その人がfetchした私のキャッシュがある
同じ名前なのに、中身が違う originは既定名にすぎない=「本物」を保証しない。cadenceが違えば食い違う
どれが本当の私か source of truthはgitに無い=どの枝・どのoriginにも、特権は無い。「正」は慣習で決まるだけ
自分自身にも見えない HEADは一度に一つ=自分のrepoでも全ブランチを同時には生きられない/他者のcloneは覗けない

要点

  1. originは「本物」ではない。 gitがcloneで既定につける名前にすぎず、特権は無い。みんなが持つorigin/私は同名でも別物。
  2. origin/私は、最後にfetchした時点のキャッシュ。 cadenceが違えば食い違う。誰も間違っていない、時刻が違うだけ。
  3. 自分でさえ、自分の全部を一度には持てない(HEADは一つ)。 あなたの本物は、どこにも置かれていない。

6章へ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?