Gitの使い方が解る Gitとは
- 2021.02.11
- Git

Gitの使い方が解るようになるには
これからGitとGitHubの使い方が解るようになるために私がやった方法を元に記事を書いていきます。
これまでGitを使ったことない方や、ちょっとしか使ったことないという方は結構いるかもしれませんが、Gitでソース管理するってなったときに色々とつまづくことが多いかもしれません。
すでにGitで管理されているプロジェクトにいきなり入って、恐る恐るGitを使ったりしているかもしれません。
ですが、これを読めば、ある程度は自信を持ってGitを使えるようになるところを目指します。
GitとGitHub
Gitとは
Gitって何?というところから簡単に説明しておきます。
Gitはプログラムのソースコードなどを変更管理するためのバージョン管理システムのひとつです。Linuxの創始者リーナス・トーバルズによって開発されました。
バージョン管理システム自体、古くはRCSから、一時期よく見かけたVisualSourceSafe、Subversionなどいろんなものがあります。
ではGitは何が違うかと思うかもしれません。
先ほど紹介したバージョン管理システムはローカルで使用することを前提なものだったり、集中型でサーバーにある共通のリポジトリをチェックアウトして開発する必要がありました。誰かがチェクアウト中はリポジトリを操作することができないため、チェックアウトしっぱなしにされると困ることがありました。
また、リポジトリが1つのため、そこが壊れてしまうと開発が止まってしまうという問題もありました。
Linuxカーネルの開発のように不特定多数の人たちで開発を進める場合にこれだと困ってしまいます。そこで登場したのが分散型バージョン管理システムです。
Linuxカーネルの開発は最初BitKeeperというバージョン管理システムを使用していましたが、プロプライエタリソフトウェアであることと、途中から課金されるようになったため、Linuxカーネル開発の創始者であるリーナス・トーバルズたちはBitKeeperの教訓を活かして独自のバージョン管理システムを作り上げました。それがGitです。
GitHubとは
Gitと混同しやすいのですが、GitHubとは、Gitのリポジトリをインターネット上で共有し複数の人たちで作業を行えるようにするサービスです。
単にリポジトリを共有するだけではなく、Wikiなどの機能もあります。
また、そのリポジトリを使ったプロジェクトに参加していない人たちからもプログラム開発に貢献できるようなPullRequestやIssuesなどの機能も兼ね備えており、この辺りの機能のおかげでオープンソースの世界が発展しました。
Gitの使い方の初歩
最初はGitを覚えようとなったらサルでもわかるみたいなところを見たくなるのかもしれませんが、私はいきなり手を動かした方が身につくと思っています。
そこでおすすめなのがこのサイトです。
https://learngitbranching.js.org/?locale=ja
ここでゲーム感覚でGitの操作を覚えることができます。
インストールとか環境設定とかそういったところでつまづいてしまい面倒になってやめてしまったということもありませんし、まずはこのサイトでMainとRemoteの最初の方をやって覚えてしまうのが良いでしょう。
これである程度操作は覚えることができます。
Gitのインストール
ある程度操作が解るようになったらまずはローカルでGitが使えるように環境を整えます。
インストール方法自体はOSや環境によっていろいろありますので、ここでは割愛します。以下のサイトなどを参考にすると良いと思います。
https://git-scm.com/book/ja/v2/使い始める-Gitのインストール
Gitを使ってみる
インストールが終わったら、操作自体は Learn Git Branching である程度分かっていると思いますので、実際に操作して試してみるとさらにしっくりくるようになるでしょう。
git init
一番最初に実行するコマンドは git init
です。
このコマンドを実行するとカレントディレクトリにリポジトリを作成してくれます。
リポジトリがどこにあるの?と思われるかもしれませんが、カレントディレクトリ内に .git
が作られているはずです。この中に存在します。
bash-3.2$ git init
git add
サンプルファイルとして次のようなテキストファイルを作ってみます。
Hello,World!
このファイルを git add
してみます。
git add sample.txt
git status
次に git status
を実行して今の状態を見てみます。
bash-3.2$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: sample.txt
新しいファイル sample.txt があって、まだ commit されていないことがわかります。
git commit
次に git commit
してみます。
bash-3.2$ git commit -m "first commit"
[master (root-commit) b80c840] first commit
1 file changed, 1 insertion(+)
create mode 100644 sample.txt
これで最初の commit が完了しました。
もう一度 git status
で確認してみます。
bash-3.2$ git status
On branch master
nothing to commit, working tree clean
commit されていないファイルはないことが確認できました。
git log
log を確認してみます。
bash-3.2$ git log
commit b80c840ac5f8958f197263f45399e891d9c0003c (HEAD -> master)
Author: waku <waku@waku.nagoya>
Date: Thu Feb 11 18:34:32 2021 +0900
first commit
ここまでがGitを使う上での一連の流れとなります。それでは、もう少し詳しくみていきます。
Gitの3つのエリア

Gitにはこのように3つのエリアがあります。
Working Directory(作業ディレクトリ)一番最初にカレントディレクトリに sample.txt を作成したと思いますが、そこが Working になります。
Working でファイルを作成したり、編集したり、削除したり普段の作業はここで行います。
その後、commit する前にまずは Staging Area にファイルを Add します。
いきなり commit するのではなく、commit するためのファイルを staging に入れてあげるのです。このことをステージするといいます。
この Staging Area があることによって不要なファイルまで commit してしまうことを防ぐことができるのです。
それからいよいよ commit するわけですが、commit した時点で、Gitリポジトリにその時点の状態がスナップショットとしてリポジトリに格納されるのです。
こうしてみると、まずはStaging Areaを操作する方法を知る必要があることがわかるでしょう。追加は git add
でしたが、複数のファイルを add する方法や、削除したいかもしれません。そのあたりを続いてみていきます。
-
前の記事
S3にTerraforのtfstateファイルを置いて複数のAWS環境から使用する 2021.01.31
-
次の記事
Gitの使い方が解る Staging Areaの操作 2021.02.14