Gitとは?基本的な使い方【初心者向け】

Gitとは

Gitとは、ソースコードなどの変更を記録するための分散型バージョン管理システムです。

GitHubと混同することがありますが、Gitがバージョン管理システムなのに対して、GitHubはGitを用いたソフトウェア開発のための共有Webサービスです。Gitはシステム、GitHubはサービスなのでこれを機に覚えてしまいましょう!

Gitでは、ファイルの変更履歴を保存するためバックアップとして余計なファイルを作る必要がありません。

また、分散型なのでリポジトリと呼ばれるデータが保存されている場所をローカルに複製して好きに編集できる(元のファイルへの影響がない)ためチーム開発にも向いています。

集中型はSubversionなどで、1つのリポジトリしか存在しません。

基本的には以下のような流れで開発が行われます。

  1. GitHubやリモートサーバーのリポジトリ(リモートリポジトリ)をローカルへ複製(clone)
  2. ソースコードの変更や追加を行い、ローカルリポジトリへ変更を記録する(add, commit)
  3. リモートリポジトリの変更差分をローカルに反映させる(pull)
  4. 変更差分が衝突した時は手動で修正
  5. ローカルの変更内容をリモートリポジトリへ反映(push)

 

出てくる用語

Gitの理解に必要な用語やコマンドを簡単に紹介します。

リポジトリ:ファイルやディレクトリといったデータを保存する場所

リモートリポジトリ:複数人で共有するためにサーバー上に作られるリポジトリ

ローカルリポジトリ:開発用に各個人のマシンに置かれるリポジトリ

clone:リモートリポジトリを複製してローカルリポジトリにする

add:変更されたファイルなどをインデックス(Git管理の対象)に追加する

commit:ファイルなどの変更をリポジトリに記録する

branch:開発の流れを枝(branch)のように分岐させ、それぞれに影響が内容に修正を行えるようにすること、主流はmasterと呼ばれる

checkout:ブランチを移動する

merge:ブランチを別のブランチに反映させる

conflict:マージする際に、同じ場所に修正が加えられていて自動的にマージを行えない状態、手動で解消する必要がある。

push:ローカルリポジトリをリモートリポジトリへ反映させる

pull:リモートリポジトリをローカルリポジトリへ反映させる

 

Gitのインストール

ここからGitをインストールします。

以下のコマンドでバージョンが表示されたら成功です。

$ git --version
git version 2.15.1 (Apple Git-101)

ターミナルを使ってGitで利用する名前とメールアドレスを設定します。

$git config --global user.name "ユーザー名"
$ git config --global user.email "メールアドレス"

ここでの設定はコミットログなどで表示されます。

 

Gitの基本操作

ローカルでの基本的な操作を見ていきます。

git init

リポジトリの初期化はgit initで行います。

Git管理したいディレクトリに移動して初期化を行います。

$ git init
Initialized empty Git repository in /hoge/fuga/.git/

初期化を行うと、.gitというディレクトリが作成されます。リポジトリのデータはこのディレクトリ以下に格納されます。

現在のディレクトリ(上の場合はfuga)をワークツリーと呼び、ファイルの編集などはこのツリー内で行います。

git add

変更したファイルをGitの管理対象にするために、インデックスにファイルを登録するコマンドがgit addです。

インデックス(ステージとも)はコミットする前の一時領域です。

$ git add ◯◯

◯◯には変更を追加したいファイル名やディレクトリ名が入ります。

git commit

インデックスに登録されているファイルをリポジトリに登録するのがgit commitです。

オプションをつけないとコミットメッセージを記述するエディタが起動するのですが、-mオプションをつけることでコミットメッセージを簡潔に記述できることができます。

$ git commit -m "initial commit"

git status

リポジトリの状態を確認するコマンドがgit statusです。

以下の画像でファイルが生成されてからコミットされてワーキングツリーの状態が綺麗になったことが確認できると思います。

git status

git log

リポジトリにコミットされたログを確認できるコマンドがgit logです。

コミットメッセージや、誰がいつコミットしたのか、差分を確認することができます。

 

ブランチ

次にブランチでの基本操作を見ていきます。

git branch

git branchコマンドでブランチ名の一覧を表示することができます。

また、ブランチ名をつけることでブランチを作成することもできます。

git branch

git checkout

ブランチの切り替えを行うのがgit checkoutです。-b オプションをつけることで、ブランチの作成も同時に行えます。

git checkout

git merge

ブランチをマージするにはgit mergeを使います。マージする前には、統合ブランチ(併合先のブランチ)に移動しておきます。

以下のコマンドはmasterブランチにbranch-Aブランチをマージしています。

git merge

git reset

以前の状態に戻るにはgit resetを利用します。

git reset --hard ハッシュ値で以前のワーキングツリーの状態に戻ることができます。ハッシュ値はgit logやコミット、マージした時のメッセージで確認できます。

以下はマージする前の状態に戻した時です

git reset

 

今回は以上となります。

他にも多くのコマンドがあるので気になる人はぜひ調べてみてください。

次回はGitHubの使い方をみていきたいと思います。

GiuHubの基本的な使い方【初心者向け】