Updated Nov/13/2022

いちばんやさしい Git & GitHub の教本 第2版

第1章: Git の基本を学ぼう


ファイルの状態を保存することを commit と呼ぶ。 commit を連続して行うことで、ファイルの変更履歴となる。 過去のcommit を参照するにはハッシュ値 (SHA-1ハッシュ関数で計算する)で指定する。

リポジトリは commit を貯めていく場所である。 リポジトリは新しく作成する場合と、既存のリポジトリを clone して作成する場合がある。 各ユーザがそれぞれのローカルリポジトリで作業を行い、リモートリポジトリに反映させる。 別ユーザはその変更を自分のローカルリポジトリに取得して、作業を続ける。

Git の管理対象はフォルダ単位である。あるフォルダを Git で管理した場合は、その下のファイルは全て管理対象となる。 Git の管理対象となったフォルダには .git という隠しフォルダが作成される。

ローカルリポジトリに commit を行いファイルの状態を保存するには、 「ワークツリー」「ステージングエリア」「Git ディレクトリ」 という3つの場所を用いる。

Git で管理しているフォルダ内の「ワークツリー」でファイルを編集する。 編集が一旦終了すると、ローカルリポジトリ内の「ステージングエリア」にファイルを登録をする。 その後 commit することでローカルリポジトリ内の「Git ディレクトリ」に変更が反映される。

「ワークツリー」は変更するファイルを保持する場所である。 ワーキングツリー内のファイルは unmodified, modified, untracked, staged という4種類の状態のどれかの状態にある。 unmodified は、最後に commit した状態から変更されていない状態である。 変更されると状態は modified となる。 ワークツリーの中にあるが、管理されていないファイルは untracked である。

「ステージングエリア」は、commit するファイルを登録する場所である。 commit すると、modified なファイルは staged な状態となる。 また、untracked なファイルは add すると staged な状態となる。

「Git ディレクトリ」は commit を格納する場所である。 commit により、ファイルの状態は unmodified となる。

ローカルリポジトリに commit した内容は、任意のタイミングで リモートリポジトリに反映させることができる。 ブランチを活用することで、同じリポジトリで並行作業を行うことができる。

変更の衝突をコンフリクト(conflict, 競合)という。


Yoshihisa Nitta

http://nw.tsuda.ac.jp/