エンジニアとして働くにはGitを理解する必要があります。
この記事ではGitについてとその使い方について説明していきます!
Gitとは?
Gitとは分散型バージョン管理システムです。
少し難しいので「分散型」と「バージョン管理」に分けて説明します。
バージョン管理
バージョン管理とはファイルへの変更履歴を保存することです。
変更履歴が保存されているので、過去のファイルの状態を後で確認することもできます。
間違えてファイルを変更しても、前の状態に戻せるのはバージョン管理をしているおかげです。
集中型と分散型
バージョン管理システムには集中型と分散型があります。
- 集中型・・・リポジトリが1つだけある(SVN, CVS)
- 分散型・・・リポジトリが複数ある(Git)
※リポジトリとはファイルの変更履歴を保存している場所です。
つまり、Gitとはファイルへの変更履歴を複数の場所で保存するシステムとなります。
Gitの用語
Gitを理解するにはGitにまつわる用語を理解するのが早道です。
ワークツリー(WorkTree)
ワークツリーとは実際に作業しているディレクトリのことです。
ワークツリーはワーキングディレクトリや作業ディレクトリと呼ばれることもあります。
インデックス(Index)
インデックスとはワークツリーとローカルリポジトリの間にあります。
ローカルリポジトリへコミットする準備をする場所です。
ローカルリポジトリ
ローカルリポジトリとは自分のPCに配置しているリポジトリのことです。
リポジトリはファイルの変更履歴を保存している場所のことでしたね。
アド(Add)
アドはワークツリーの変更をインデックスに追加することです。
コミットしても良いファイルを選択するということです。
コミット(Commit)
コミットとはファイルやディレクトリの変更をリポジトリに記録することです。
ローカルリポジトリへ記録する時によく使われます。
リビジョン
リビジョンとは変更履歴のことです。
コミットして変更履歴が加わると新しいリビジョン番号が変わります。
リモートリポジトリ
リモートリポジトリとは専用のサーバーに配置しているリポジトリです。
ローカルの変更を複数人で共有するために、リモートリポジトリに変更を登録します。
プッシュ(push)
プッシュとはローカルリポジトリの状態をリモートリポジトリに反映させることです。
プル(pull)
プルとはリモートリポジトリの状態をローカルリポジトリに取り込むことです。
Gitの使い方の流れ
Gitの基本的な用語を紹介してきました。
実際にGitを使うときの流れを見てみましょう!
- ワークツリーでファイルを変更します
- ファイルの変更をアドしてインデックスに追加します
- ローカルリポジトリへ変更をコミットします
- ローカルリポジトリの変更をリモートリポジトリへプッシュします
- 他の人がプッシュした変更をプルして、ローカルリポジトリに反映させます
GitとGitHub
Gitを利用する時はGitHubも使うことが多いので、ここで紹介しておきます。
GitHubはリモートリポジトリの管理サービスです。
GitHubには複数人でリポジトリを共有しやすいように、様々な機能が提供されています。
GitHub以外にもBitbucketやGitLabなど他の管理サービスもあります。