Re:ゼロから始めるcommit生活 Fork(Gitクライアント) commit

# 概要

- macOS BigSur 11.4
- Fork Ver 2.7

この記事で解説するのは以下のコマンド

- `commit` コミット（保存）

また、GitクライアントのForkのスクリーンショットを使用して解説します
Gitの導入やForkのインストール、アカウント連携などは解説しません

あくまでツール上でやりたいことがわかるように解説することが目的なので
現実的にありえないシチュエーションが発生する場合があります

下のよくみるやつは登場しません

```
$ hogehoge
```


# 対象のニート

よく`commit`しろって言われるけど、どういうタイミングでするのかわからない
`commit`って何が便利なの？

って感じのニートの皆様

記事を読んだベテランニートの皆様も認識が間違ってる部分があったらぜひ壁ドン床ドンお願いします

また、`branch`の作成方法を知っている必要があります
少し長いですが同じようなテンションで解説しているこちらの記事を先にご一読ください
読んだことある方はそのまま進んで大丈夫です

https://qiita.com/dwl/items/8914d6dda3fe8901d489


# 登場人物

- ニート(淡白)
- 女神(冷静)


# `commit`って何！！！！？？？！？

20XX年。あなたは死亡したッッッ！！！！！

『あなたは死亡しました』
「地の文との温度差すごくない？」

『ですが、あなたはやり直しができるタイプの人間だったので頑張ってやり直しましょう』
「えぇ…そんな急に言われても…」

『あなたの人生を振り替えってみて、どうでしたか』
「うーん、そんなに振り返るようなこともなかったような気がする」

『そのようですね』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/a6fee5d6-a5da-19ef-513b-d6d153389c4a.png)

「あー、やけに走馬灯が短いと思ってたけどこれは仕方ないか」
『それはあなたが`commit`をあまりしていないからです』

「`commit`ってなんだ？」
『あなたゲームはしますか？』
「あんまりゲームしないタイプのニートだったんだよ　ゲームは好きだけどな」
『ではこちらをご覧ください』

https://www.youtube.com/watch?v=SJ6UaszS2Lo

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/222ba206-9616-db79-eb27-2e2d874be5a4.png)

『簡潔にいうと`commit`で **ほぼ** この機能が使えるようになります』
「これはすごいな」
『なぜですか？』
「好きな時間に戻ってそこからゲームを再開できるんだから絶対にクリアできそうな気がする」
『その通りです `commit`はそういうことを可能にするモノなんです』
「へぇー興味湧いてきたかも」

「`commit`もすごいけど 天国でyoutubeを見れるなんて思わなかったな」
『いえ ここは地獄ですよ』
「知りたくなかった」


# 嗚呼！！`commit`さえしていればッッ！！

`commit`ってすごい！とニートは驚愕したッッ！！！
しかし、女神はなんでもできそうだとワクワクしているニートに無慈悲なる鉄槌を下すッッ！！！

『しかし、あなたの場合はそこまで融通が効きませんよ』
「なんでだ？好きな時間に戻れるんじゃないのか？」
『戻れるのは`commit`をしているタイミングだけです』
『あなたはあまり`commit`をしていなかったので戻れるタイミングがそう多くありません』

![ 2021-08-11 11.58.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/b0881126-28e3-61dc-aa67-c39cd1b29d56.png)

『先の画像で説明するとこちら5つのデータが`commit`になります』
『しかし、あなたは`commit`が少ないので戻れるのはせいぜい2箇所です』

![ 2021-08-11 11.58.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/83efdb25-62ea-e8c6-5e09-c961aee9b77a.png)

「生まれた場所と死んだ場所しかないな」
『なので、赤ちゃんからやり直しになりますね』

『では早速過去に戻ってみましょう』


# 行くぜ！！！帰るぜ！！！！あの頃へ！！！！！！！！！！

ニートは過去に戻ることを決意したッッ！！！！！
ニートの将来に幸の多からんことをッッッッ！！！！

「暑苦しいけど普通に優しいなこのナレーション」
『では早速生まれた時点に戻りましょう』

『こちらが現在のあなたの状態です』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/b75b5bfa-8bbc-3458-1869-66d0e4d91e25.png)

「isDeadがtrueになって死んでるってことか こんなにインスタントでいいのか人類は」
『この状態で誕生の`commit`をダブルクリックして』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/f8087453-3fde-8735-b571-ea7975848f56.png)

『Checkoutボタンを押して完了です　これであなたは赤子として蘇りました』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/4c83f6ad-1ef2-8273-181b-d1c84b8f55d0.png)

「そんなに実感がないけどisDeadがfalseになってるからそうなんだろうな 0歳だし」

『では最後に`branch`を作成して新しい人生を開始しましょう』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/262e89f0-52b2-b1b6-a928-4b536fa3458b.png)

「0歳のはずなんだけど何故か死んだ記憶があるぞ…」
『そこが`commit`が例の巻き戻し機能より優れている部分です』


# いざ！新たなる人生へッッ！！！！

0歳になったニートッッ！！！
しかし何の因果か記憶を保っていた…ッ！何故なんだ？！？！？！？？？！！

『`branch`にある`commit`が記憶として残っているからです』
「ちょっとイメージが湧きにくいな」
『では具体的に試してみましょう』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/373c1a74-64c2-9e64-c440-05510f35873b.png)

「さっきのと同じ画面…？これのなにを…？」
『画面左のBranchesのmasterをダブルクリックしてみます』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/6f1e658c-2453-33fe-f6d9-979880ecc0ff.png)

「急に20歳のニートになって死んだんだけど」
『このとおり、いつでも戻ることができます』
「痛いほど実感できたから早く0歳の赤子に戻してくれ」

『ではしばらく好きに生活してみてください』
「`commit`はどうしたらいいんだ？」
『`commit`したほうが良さそうなタイミングでまたきます』


# 今こそ`commit`の刻ッッ！！！！！

ニートはすくすくと育ったッッ！！！
現在、ニートは悩んでいるようだ…！！若いうちは沢山悩むことだ！！！！！！！
悩みを解決してこそッッ！！！人はおとn

「うわぁこのナレーションも12年ぶりだ」
『では、`commit`をしましょう』
「いや、いきなりすぎるだろ 久しぶり、とかないの？」
『ご無沙汰しております』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/54e77128-e714-5f28-4443-951c4ab70874.png)

『ところで今中学受験をするかどうか悩んでいますね？』
「なんで知ってるんだろう」
『そういうときにこそ、`commit`です』

『まず中学受験に合格して入学します』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/6a20b3e1-9fb0-849d-6c01-c8db948a2072.png)

「あぁ、進路が勝手に確定されてゆく」
『これであなたは受験前と受験後に`commit`がある状態ですね』
「つまり、とりあえず入学はしたけど嫌だったら受験前に戻ればいいのか」

『そしてピンポイントにあなたの中学校に隕石がぶつかりました』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/c8e4ff4d-bbae-c5a9-6c2e-ee7406fc236f.png)

(※この`commit`はする必要がありませんが可視化のために`commit`してあります)

「ひどいめにあった っというか死んでるし」
『では、中学受験をしなかった世界に切り替えましょう』

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/d0cb1cee-f930-c8ce-86dc-c750608a1db2.png)

「これでいいかな」
『そこまで使いこなせるのであればもう独り立ちできそうですね』
「うん いろいろ教えてくれてありがとう」

頑張れニートッッ！！！！！ 我々はいつでも応援しているぞッッ！！！！！！！！
何度だってやり直して夢を叶えるんだッッ！！！！！！！！


# おまけッッ！！！！！！！！！！！！

<details><summary>人生を`merge`しよう</summary><div>

*new_life_2* を *new_life* に`merge`します

まずは*new_life*に`branch`を切り替えます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/0d955752-06f6-d46d-8df7-fcebc7d7bf54.png)

*new_life_2*を選択し、Merge into new_life　を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/d22baaf2-0d75-ffb3-4860-00a007b5b6fd.png)

もちろん`conflict`するけど…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/7a14c761-09af-7782-02f9-b9b5db137d70.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/1e7cdb37-1596-8043-8459-9452e386933c.png)

このくらいは余裕ですね

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/4140090b-f33b-4d78-ebb1-a46f35e970d9.png)

この調子でmasterにも`merge`しましょう！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613274/d54440e4-691e-49e4-b8ff-3ad2e0bd131d.png)

最終的にはこんな感じになりました！

</div></details>