Gitのインストールと基本コマンドについて

数あるサイトの中から、本記事に訪れていただきありがとうございます。当記事に対して気づいた点や間違い等ございましたらコメントよりご指摘いただければと存じます。ぜひとも最後までご覧になっていただきみなさまがGitを理解する一助となれば幸いでございます。

本記事では下記項目より、Gitについて説明と手順にのっとった実践形式でご覧にいただければと思います。

目次

Gitのインストール方法

下記リンクのGitサイトからインストールします。LinuxMacWindows用がそれぞれ在るので、使用しているOSに合わせてインストールします。 git-scm.com

細かいインストールの手順が分からない場合はこちらの侍エンジニア様のブログで分かりやすく説明されているので参照していただければと思います。

また、今回はGitHubを使用しますので、でアカウントの作成及びリポジトリの作成ができていない方は下記を参照して準備をしていただければと思います。GitHubでなくても既にアカウントとリポジトリをお持ちの方は飛ばしていただいて問題ありません。

リモートリボジトリとローカルリポジトリについて

リポジトリとは

リボジトリ(repository)は収納場所、保管場所、倉庫などの意味で訳されます。Gitを使用する上ではプロジェクトのフォルダやファイルを保管する場所のことを意味します。

また、単に保管するだけではなく、Gitには変更履歴の記録やバージョン管理ができるコミット(commit)という概念や、複数人で開発作業が行えるブランチ(branch)という概念が存在します。次項でも少し触れていきます。

リモートリポジトリとは

リモートリポジトリとは、インターネット上あるいはその他ネットワーク上のどこかに存在するプロジェクトのことです。
(引用元:Git - リモートでの作業

インターネット上に存在している保管庫なので、Google DriveDropbox等のイメージすると分かりやすいと思います。
前述のしましたが、Gitは保管庫の機能に加えてバージョン管理や共同作業を可能にします。また、GitHubやGitLab等のプラットフォームを使用することでGitの機能を最大限に活用することができます。

ローカルリポジトリとは

自身の作業PC、マシンに配置するリポジトリを指します。リモートリポジトリからclone(クローン)や、pull(プル)をすることで、ローカルリポジトリにリモートリポジトリのプロジェクトがコピーされ、自身のPCで作業をすることができます。

基本作業の流れと各Gitコマンド

手順1. 初期設定

Gitのインストールが完了したら「Git Bash」 を起動し、GitHubで登録したユーザー名とメールアドレスを設定します。

$ git config --global user-name "GitHubに登録したユーザー名"
$ git config --global user.email "GitHubに登録したメールアドレス"

それそれタブルクォーテーション"、で囲みます。 ューザー名とメールアドレスが正しく設定されているかを確認します。

$ git config -l
user.email=xxxxxxxxxx@xxx.com
user.name=xxxxxxxxxx

それぞれ登録したユーザー名とメールアドレスが表示されていたら初期設定は完了です。 git configでは他にも様々な設定ができますが、今回は割愛させていただきます。

手順2. リモートリボジトリをローカルリボジトリにclone(クローン)する。

※今回は基本的な流れと操作についての説明のため、masterブランチを使用して説明しますが、通常のチーム開発でのフローではmasterブランチで直接作業することはしないため、実際の業務での開発環境では行わないようにして下さい。

まずは作業するディレクトリに移動します。私の場合は/c/Users/xxx/Documents/workの中で作業をすることとしますので

$ cd Documents/work/

とコマンドを入力します。

作業ディレクトリに移動できましたので、リモートリポジトリをローカルリポジトリにclone(クローン)していきます。cloneは単にファイルを複製するだけでなく、コミット履歴(≒変更履歴)も保持しているという特徴があります。

下記コマンドを入力します。[ユーザー名]と[リポジトリ名]を自身のものに適宜置き換えて入力するようにしてください。尚、カギカッコ[]は含みません。

$に続く部分が入力するコマンドです、行頭に$が無い部分はコマンドの出力結果の例になります。

$ git clone "https://github.com/[ユーザー名]/[リポジトリ名].git"

Cloning into 'xxxxxxxxx'...
remote: Enumerating objects: xx, done.
remote: Counting objects: 100% (xx/xx), done.
remote: Compressing objects: 100% (xx/xx), done.
remote: Total xx (delta x), reused xx (delta x), pack-reused 0
Receiving objects: 100% (xx/xx), x.x KiB | x.x MiB/s, done.
Resolving deltas: 100% (x/x), done.

これで、リモートリボジトリ(GitHub)からローカルリボジトリ(作業PC)にクローンすることかできました。

lsコマンドでブロジェクトがあることが確認できます。

$ ls
[リポジトリ名]/

手順3. ファイルを編集

ローカルリポジトリでファイルの編集や追加/削除等の編集を行います。ここでは例として、「test.txt」というテキストファイルを新規作成する変更を加えることとします。

まずはリポジトリ内に移動します。

$ cd [リポジトリ名]/

ファイルを作成します。(エクスプローラテキストエディタ等から作成しても何も問題ありません)

$ touch test.txt

手順4. 変更をリポジトリに反映させる

ローカルリポジトリでの作業が完了したら、ローカルリポジトリ内のGitに変更を反映させる必要があります。

まずは、現在の状態、反映されていない変更を確認します。

$ git status

On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test.txt

nothing added to commit but untracked files present (use "git add" to track)

変更が反映されていないファイル、今回の場合はtest.txtがUntracked files:として赤字で表示されているはずです。(環境によって色が異なる可能性があります)

続いて変更を反映させます。

$ git add ./

./は配下のディレクトリ、ファイルの全てを指定しています。

現在のディレクトリはc/~/[リポジトリ名]ですので、リポジトリ内全ての変更を反映させることを意味します。
補足ですが、この時点ではローカルリポジトリに反映されたのみで、リモートリポジトリ(GitHub)にはまだ反映されていません。

もう一度現在の状態を確認します。

$ git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   test.txt

配下のファイルが追加され、new file:として緑色で表示されました。(環境によって色が異なる可能性があります)

上記のように表示されていたら変更の反映が正常にできています。

手順5. addしたファイルをコミットする。

コミットはファイルを保存することに相当します。昔のポケモンでいうレポートを書く的な役割に留まらず、

コミットは履歴を残すことができ、特定のコミットに戻ったり、特定のコミット同士を合体させたりすることができます。合体させるメリットとしては細々とした変更や変更したけどやっぱり戻した、みたいなものを合わせることで変更履歴を整理することができることがひとつあげられます。チームで共同開発する際や、成果物を納品する際にコミットが整理されているとベターです。

実際にコミットしていきます。

$ git commit -m "[コメント]"
[master c29e87a] [コメント]
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt

コメントには、どのファイルを変更したか、何を変更したか、どのissueと紐づけるか、等々を記載します。チームでルールを決めて運用すると自分以外の作業者のコミットも読み取ることができます。
※因みにこの時点でもまだリモートリポジトリには反映されていません。

6. ついに…リモートリポジトリに変更を反映

お待たせしました。

$ git push origin master

これでやっとリモートリポジトリに反映されました、GitHubリポジトリのページに行くとファイルが追加されていて、コミットメッセージも閲覧できるかと思います。

このように、

  • git cloneでローカルリポジトリに複製する。
  • ファイルの編集・追加作業をする。
  • git addで変更点を追加する。
  • git commitでコミット(保存)する。
  • git pushでリモートリポジトリにコミットを反映する。

次の作業が発生したら。。。

  • ファイルの編集・追加作業をする。
  • git addで変更点を追加する。
  • git commitでコミット(保存)する。
  • git pushでリモートリポジトリにコミットを反映する。
    の繰り返しが基本的な一連の流れになります。

最後に

まだまだ、branchの概念や、共同作業には欠かせないmergeの概念がありますが、ひとまずは基本編ということでここまでの内容とさせていただきます。
私自身Gitに苦手意識をもちながら数年見過ごしてきましたが、仕事で使うようになり少しずつ習得してきています。引き続き更新していこうと思っていますので、同じように苦手意識を持っている方に見て行っていただけると幸いです。
拙い文章ではありましたが、最後までご覧くださりありがとうございました。