Gitって何?

こんにちは、ParaLuxでインターンをさせていただいている佐藤です。
今回は、
 1、Gitとは何か
 2、Gitの使い方
 3、Gitのサブコマンドの使い方
について書いていきたいと思います。ゆっくり読んでいただけると幸いです。

1、Gitって何?

 Gitとは分散型バージョン管理システムであり、ファイルのバージョン管理を簡単にすることができます。
 Gitで管理しているファイルであれば、コンピューター上でファイルの編集履歴を管理できるので、編集前のファイルを残したまま、新しく編集したファイルを保存することができます。そのため古いバージョンから新しいバージョンまでの管理が簡単で、コードを編集した上で何か不具合が起きた際も、元のバージョンに容易に戻すことができます。

共同開発の3つのステップ

STEP1 コードを変更

STEP2 共有する準備

STEP3 共有する  

 共同開発では、自分の書いたコードを他の人に共有する必要があります。 この共有の場(STEP2、STEP3)で Git の活躍します。

2、Gitの使い方

 Git管理の構造は以下のようになっています。
 addやcommit、pushなどはGitのサブコマンドと呼ばれるものです。

Gitの構造

ワーキングツリー

 ユーザーが実際に作業しているディレクトリのことをワーキングツリーといいます。ここでプログラムファイルを作成したり、プログラムを修正したりします。

インデックス

 インデックスとは、リポジトリにコミットする準備をするための場所のことです。
 Gitでは、コミットを実行した時にワークツリーから直接リポジトリ内に状態を記録するのでなく、その間に設けられているインデックスの設定された状態を記録するようになっています。そのため、コミットでファイルの状態を記録するためには、まずインデックスにファイルを登録する必要があります。addというサブコマンドを使うことでインデックスに追加することができます。
 このようにインデックスを間に挟むことで、ワーキングツリー内の必要ないファイルを含めずにコミットを行ったり、ファイルの一部の変更だけをインデックスに登録してコミットすることができます。

ローカルリポジトリ

 リポジトリとは英語で収納庫という意味を持ち、データやプログラムの情報が納められたデータベースのことを指します。
 ローカルリポジトリは自分のパソコン内でバージョン管理するために作成したリポジトリのことです。ローカルリポジトリで編集した内容をリモートリポジトリにアップロードすることができます。

リモートリポジトリ

 リモートリポジトリはネット上にファイルをアップロードした状態でファイル管理するものです。ローカルリポジトリからアップロードされた他の人のファイルを閲覧できます。

ブランチ

 ブランチとは履歴の流れを分岐して記録していくためのものです。分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができます。分岐したブランチはマージ(合流)することで一つのブランチにまとめ直すことができます。メインのブランチをmasterブランチといい、このブランチにまとめていきます。
 チームのメンバーは、他のメンバーの作業の影響を受けないように、メインのブランチから自分の作業専用のブランチを作成します。 そして作業の終わったメンバーは、メインのブランチに自分のブランチの変更を取り込んでいきます。このようにすることで、他のメンバーの作業による影響を受けることなく、自分の作業に取り込むことができます。また、作業単位で履歴を残すことで、問題が発生した場合に原因となる変更箇所の調査や対策を行うことが容易になります。

ブランチ

3、Gitのサブコマンド

Gitを使う準備 git init

 Gitを使う準備としてGitを使いたいディレクトリに対して”git init”を実行する必要があります。
 Gitのinitコマンドは、リポジトリを新規に作成するときに使用するコマンドです。initコマンドを実行すると、現在のディレクトリに「.git」というリポジトリを構成するディレクトリが作成されます。.gitにはGitで使用するファイルが新規に作成されます。

$ git init

共有したいファイルを選択 add

 ワーキングツリー内のファイルを選択して、インデックスに追加することができます。”git add ファイル名”で追加できます。下記では”index.html”というファイルを選択しています。

$ git add index.html

 また、”git add . “とすることでワーキングツリー内のすべてのファイルを追加することができます。

$ git add .

選択したファイルを記録する commit

 ”git commit”を実行することでインデックス内のファイルをローカルリポジトリに記録することができます。この用に記録することをコミットといいます。また、ローカルリポジトリに記録する際、メッセージをつけて記録することができます。このメッセージのことをコミットメッセージといいます。コミットメッセージをつけることによってコミットの内容がどのようなものかがわかりやすくなります。

$ git commit -m 'コミットメッセージ'

リモートリポジトリを登録 remote

 リモートリポジトリはGithubで作成します。Githubについての説明は「Githubって何?」というブログにて説明します。

 リモートリポジトリはネット上に存在するため、ローカルリポジトリとのやり取りを行う時はアドレスを指定する必要があります。作業するたびにアドレスを指定するのは面倒なので「origin」という名前に関連付け、以後originとして扱えるようにします。

$ git remote add origin リモートのURL

ブランチの作成 branch

 ブランチは”git branch ブランチ名”を実行することで作成することができます。ここではブランチ名にdevelop/satoとつけています。

$ git branch develop/sato

 また、”git branch”を実行することでブランチの一覧を見ることができます。現在のブランチには”*”というマークがつきます。

ブランチの移動 checkout

 作成したブランチへ移動するには”git checkout ブランチ名”を実行します。

$ git checkout develop/sato

リモートリポジトリにファイルをアップロードする方法 push

 ローカルリポジトリからリモートリポジトリにファイルをアップロードするには”git push”を実行します。

$ git push origin develop/sato

リモートリポジトリのファイルをダウンロードする方法 pull

 リモートリポジトリのファイルをダウンロードするには”git pull”を実行します。
 ”git pull”を実行すると、まず、リポジトリの内容がどのように変更されているのかという情報を取得し、、現在のブランチに取り込みます。

$ git pull origin master

最後に

 拙い文章ではありましたが、読んでいただきありがとうございました。次回もよろしくお願いします。