Gitで更新履歴を作成する(コミット)
今日は、バージョン管理システムのGitを練習してみます。
Gitでコミット(更新履歴の作成)のやり方を学んでみます。
教科書は「わかばちゃんと学ぶ Git使い方入門」という本です。
SECTION 05 コミットしてみよう
(p.61)
変更を記録するための基本の流れは次の通りです。
- 作業する。
- ステージする(撮影台に載せる)。
- コミットする(スナップショットを撮る)。
SECTION 05の内容は、Web版でも閲覧できます。
Gitの3段階の状態
Gitは、データの状態を3段階で管理してました。
- フォルダ: 記録する対象を作る段階(修正中)
- ステージ: 記録する対象を指定する段階(記録前)
- リポジトリー: 記録した履歴を表示する段階(記録後)
Gitで変更を記録するには、この(1)→(2)→(3)の順番で進めます。
この図だけではいまいちピンと来ませんが、「わかばちゃんと学ぶ Git使い方入門」の説明で腑に落ちました。
(参考)マンガでわかるGit 第4話「コミットしてみよう」|CodeIQ MAGAZINE
変更を記録する流れを、写真の撮影の例えで説明されています。
(この比喩が、とても分かりやすかったです!)
なぜ3段階に分かれているのか?
2番目の「2.ステージする」というステップを飛ばして、いきなり撮影=記録しても良いような気がしますが、このステップは変化を管理する上で大事な働きがあります。
(事例)
変更したファイルが「a.txt」「b.txt」「c.txt」と3個あった場合、「a.txt」の1個だけ記録の対象に選んで、残り2個の「b.txt」と「c.txt」はまだ記録したくない場合を考えます。
「2.ステージする」(被写体を選んで撮影台に乗せる)というステップがあると、「a.txt」だけステージに移動させて、「b.txt」「c.txt」は作業中の欄に残せます。
もしも、「2.ステージする」というステップがなければ、作業中の「a.txt」「b.txt」「c.txt」全部まるごとコミットすることになります。
=コミットする対象を選べないと不便ですね!><
Gitに「2.ステージする」がなければ、まだ記録したくないデータも全部記録の対象になってしまい、これでは履歴がゴチャゴチャになって、どこが変わっているのか?分かりづらくなるでしょう。
(1)(2)(3)それぞれのステップの役割を考えると、Gitはうまく出来ていると感心しました!(素晴らしいw)
以下のメモは、わかばちゃんの比喩で進めてみます。
コミットとは?
「コミット」(commit)は、英語で「約束する」「表明する」などの意味があります。
https://eow.alc.co.jp/search?q=commit
3. ~に責任を持つ、~と約束する、~を誓う、~を明言[表明]する
https://teratail.com/questions/25297
コンピューターの用語だと「コミット」は、「確定する」というような意味で使われているようです。
Gitの場合は、上記の(2)から(3)の段階へ移行することを「コミットする」といいます。
Gitでコミットの練習
ファイルを作成/変更して、Gitで更新履歴を記録してみましょう。
1.作業する
前回作った「sample」フォルダ(Cドライブのsampleフォルダ)の中に、「okonomi.txt」というファイルを新規作成します。
「okonomi.txt」の中に「お好み焼き粉・水・卵を入れます」と入力して保存します。
すると、Sourcetreeがsampleフォルダ内の更新を察知して、Sourcetreeの表示が自動的に変わりました。(自動ってのがイイね!ちょっと感動w)
(上記のような画面になってない場合は、「ログ」というタブをクリックします。)
2.ステージする
「全てインデックスに追加」ボタンをクリックします。
すると、「作業ツリーのファイル」欄にあった「okonomi.txt」が1、つ上の「Indexにステージしたファイル」欄に移動しました。
3.コミットする
左上の「コミット」ボタンをクリックします。
すると、「ファイルステータス」タブが表示されるので、更新内容のメモを書き込みます。
最後に、右下の「コミット」ボタンをクリックします。
ちゃんとコミットされたか確認するために「ログ」タブをクリックします。
上記のようになってたら、コミットは成功です!
(わ~い、パチパチパチw)
更新履歴の追加
さらに変更を続けて、更新履歴を増やしてみます。
ファイルの内容を変更して、「1.作業する → 2.ステージする → 3.コミットする」という一連の作業を繰り返します。
「okonomi.txt」に具のデータを追加して、その都度コミットしてみます。
- 「キャベツを入れます」の1行を追加して、コミット。
- 「もやしを入れます」の1行を追加して、コミット。
- 「豚肉を入れます」の1行を追加して、コミット。
(参考)お好み焼きのレシピは、クックパッドを参考にしてみましたw
みんなの推薦 お好み焼き レシピ 248品 【クックパッド】
1行ずつ追加してコミットを繰り返したら、以下のようになりました。
これで更新履歴を、たくさん作ることができました!
Sourcetreeの画面の特徴
- (1)(2)(3)の3段階を進めると、画面の下から上へ徐々に記録対象が移動していくかんじ?
- 更新履歴のグラフは、下側が古い状態で、上側が新しい状態の順番で並んでいる。
まとめ
- Gitでは、ローカルPC上にあるデータの変更を3段階で管理している。
- 3段階を写真の撮影に例えると、
- 作業する =被写体を用意する
- ステージする =撮影台の上に乗せる
- コミットする =カメラで撮影する
- 作業の切りが良いところで、その都度コミットして、作業の結果を保存(記録)していく。
- コミットするときは、作業内容のメモを書く。
- コミットを繰り返すと、更新履歴が伸びていく。
今回は、Gitでコミットする(更新履歴を作る)方法を練習しました。
次回は、更新履歴から、過去の状態に戻る方法を練習してみます。
わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉
- 作者: 湊川あい,DQNEO
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2017/04/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る