Gitの使い方が解る

  • 2021.02.11
  • Git
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 する方法や、削除したいかもしれません。そのあたりを続いてみていきます。