【Git】インストール方法と使い方!リポジトリの違いと作成方法!

この記事からわかること

  • Gitインストールする方法
  • Gitの使い方
  • GitHubリポジトリを作成する方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

Webアプリを自作して公開しようとした際に使わない理由がないほど便利なGit。自分の備忘録のために概要とインストール方法や使い方などをまとめていきたいと思います。

Gitとは?

Gitとはコマンドライン上(CUI)で扱える分散型バージョン管理システムの1つです。ファイルの編集履歴を保存しておくことで簡単に編集前の状態に戻せたり、更新した箇所を特定したりとアプリケーションを運営していく上で役立つ機能を持っています。

複数人で開発する時にはファイルを共有できたり、お互いの変更点や更新日時、コメントなどを残せることでより円滑に開発を行えるようになるのもメリットの1つです。

保存できるのはファイルなのでテキストデータや画像ファイル、Excelファイルなど色々な職業で役立つ便利なシステムです。

Gitのメリット

操作するのはコマンドライン(ターミナルやコマンドプロンプト)です。コマンドを入力することでGitを操作していきます。

Gitを使用する流れ

Gitを使ってバージョン管理をしていくためにまずは大まかな流れと構造を理解しておきます。

Gitを使う流れ

  1. Gitのインストールとユーザー設定
  2. ローカルリポジトリを初期化&Gitの管理下に置く
  3. ステージング
  4. コミット
  5. リモートリポジトリに作成(共有スペースを作成)
  6. リモートリポジトリに追加(共有スペースに追加)

大まかな流れは以上の通りです。用語は後で説明するとしてGitとしてはざっくり6手順で変更履歴やファイルの共有までが完了します。

リポジトリとは

リポジトリとは日本語で「貯蔵庫」という意味の英単語です。Gitで言うリポジトリはソースコードを記述したファイルを格納する場所のことを指しています。リポジトリはさらに2種類に分かれます。

誰かと共有で開発をするならリモートリポジトリの作成は必須ですが、一人での個人開発であればローカルリポジトリのみでも問題なく利用できます。

またリモートリポジトリにファイルを共有するためにはまずローカルリポジトリに登録してからリモートに登録をする2段階のステップを踏まないといけません。

上記の流れで言うところの「2.ローカルリポジトリを初期化&Gitの管理下に置く」がローカルリポジトリを作成している部分です。

1.Gitのインストールとユーザー設定

まずがGitを使えるように未導入であればインストール、その後設定をしていきます。インストールするには以下の「バージョンを確認するコマンド--version」を入力します。

$ git --version

バージョンが返って来ればインストールは済んでいます。未導入であればポップアップが表示されるので「インストール」をクリックすればOKです。

git version 2.30.1 (Apple Git-130)

続いてGitのユーザー設定をします。日本語部分の場所を自分のものに置き換えながらコマンドを実行するだけです。

Gitのユーザー名設定

$ git config --global user.name "ユーザー名"

Gitのメールアドレス名設定

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

ユーザー設定内容を確認

$ git config --global --list

--globalオプションで設定した情報は~/.gitconfigの中に保存されます。

2.ローカルリポジトリを初期化&Gitの管理下に置く

続いて共有(バージョン管理)したいファイルを作成しておきます。既に作成している場合は飛ばしてください。

// ディレクトリを作成する
$ mkdir app
// ディレクトリに移動する
$ cd app

該当のディレクトリに移動したらgit initコマンドを入力しローカルリポジトリを初期化(initialize)します。このコマンドを入力すると該当ディレクトリの中に隠しファイルである「.git」ファイルが作成されます。

ローカルリポジトリを初期化(initialize)

$ git init
.gitファイルの中身

初期化するコマンドを入力することでこのディレクトリがGitの管理下になります。管理下になったディレクトリ(ファイル?)のことをワークツリー(ワーキングツリー)と言います。ワークツリーにある状態のままファイルを変更、更新することでその変更履歴が監視されていきます。

ワークツリーとステージング、インデックスの違い

ここで「ワークツリー」という言葉が出てきました。「ローカルリポジトリじゃないのかよ」と思ったのですが、さらに「インデックス」という言葉もここでは絡んできます。自分なりにまとめてみました。

Gitのローカルリポジトリやワークツリーの構造図

ローカルリポジトリは大枠部分(ディレクトリ)で、その中のファイルたちにそれぞれステータスが振られるイメージ。最初は編集中を示す「ワークツリー状態」、それを「3.ステージング」することで状態が「インデックス」に変更になる

そして状態が「インデックス」のものだけリモートリポジトリにアップロードできる

つまりステージングは「リモートリポジトリに追加するものを登録する(状態をインデックスに変更する)」ということですかね?

3.ステージング

これでGitを使う準備ができたので実際にファイルを操作してみます。

Gitは空のディレクトリは管理対象外なので、管理対象にしたい場合は何かしらのファイルを入れる必要があります。まずはディレクトリ内に適当なファイルを作成します。

$ touch index.html

このファイル(現在はワークツリー)をステージング(インデックスに変更)します。ステージングするコマンドはgit add ファイル名です。

ステージング

$ git add index.html

ステージングはファイル単位で行い、1つずつインデックスへ移していくと分かりやすいです。複数のファイルを一括で操作したい場合はワイルドカード(*)を使うことも可能です。

複数のphpファイルを一括ステージング

$ git add '*.php'

管理下の全てのファイルを一括ステージング

$ git add -u

4.コミット

コミットとはリポジトリにファイルの変更や追加の履歴を保存することを指します。コミットを識別するための識別子としてハッシュが振られます。この値はSHA-1ハッシュ関数を使用して生成され、Git上では生成されたハッシュ値の先頭7桁が表示されます。

ファイルをコミットするには以下のコマンドを叩きます。

$ git commit -m “コメント”

コミットする際はコメントを残すのが定石です。ファイルに対して行った操作(作成や変更、削除など)と箇所を記述しておくと後から参照した時にわかりやすくなります。

$ git commit -m 'Create index.html'

これでローカルリポジトリに今回の変更履歴が登録されました。ここまでを都度繰り返していけば変更履歴がどんどん増えていき、簡単に変更点を確認することができます。そしてここからは共同開発で使えるリモートリポジトリをみていきます。

4.リモートリポジトリの作成(GitHub)

リモートリポジトリを作成するにはGitHubが必要になってきます。まずは「 GitHub」にログインしましょう。

ログインしたら右上の「」の中の「New repository」をクリックします。

GitHubからリモートリポジトリを作成する手順

Repository name」に名前と「desc」に説明、必要であれば下のオプションを追加しておき、一番下の「Create repository」をクリックします。

GitHubからリモートリポジトリを作成する手順

するとURLが表示されます。このURLがリモートリポジトリにアクセスできるURLになるのでコピーしておきます。

GitHubからリモートリポジトリを作成する手順

これで新しいリモートリポジトリの作成は完了です。

リモートリポジトリに追加(push)

作成が完了したのでローカルリポジトリにあるファイルをリモートに追加(プッシュ)していきます。

まずはリモートリポジトリを紐づけます。originデフォルト設定されているリモートリポジトリの名称です。以下のコマンドはorigin(デフォルト設定されている名称)に対してアクティブにしたいリモートリポジトリを紐づけているイメージです。

$ git remote add origin リモートURL

続いてpushコマンドを実行することでステージングしたファイルたちがリモートリポジトリにpushされます。第一引数にはorigin(リモートの名称)を第二引数にはブランチ名を指定します。

$ git push origin master
$ git push リモート名称 ブランチ名

ブランチ名はデフォルトで「master」となっているので気にせず実行すればOKです。ブランチとは「枝わかれ」という意味の英単語です。Gitでは枝分かれしていくコミット履歴のことを指します。

Gitのブランチの解説図

例えば最初に作られる「master」は「新規機能追加」専用のコミット履歴、新規作成した「ブランチB」は「エラー修正」専用のコミット履歴といったように目的によってブランチを分けて管理することで、保存されている履歴がスッキリして作業しやすくなります

これでpushが完了しているはずなのでGitHubのリモートリポジトリ内に該当のファイルが作成されていれば成功です。

GitHubにPushされたindex.html

反対にリモートリポジトリのファイルをダウンロード(pull)する場合は以下のコマンドを入力することでローカルリポジトリ内(ディレクトリ内)にファイルをコピーすることができます。引数はリモート名称とブランチ名を指定してあげればOKです。

$ git pull origin master

ここからはさらに使えるコマンドやテクニックをまとめていきます。

ステージングの有無を確認

ディレクトリ(ワークツリー)内でステージングしたものとしていないものを見分けるにはgit statusで確認可能です。

ステージングの有無を確認

$ git status
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
On branch master
// ステージング済みのファイル
Changes to be committed:
  (use "git restore --staged  <file>..." to unstage)
	modified:   index.html

// まだステージングしていないファイル
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	index.html

ステージング済みのファイルは上側に緑色、していないファイルは下側に赤色で表示されます。

git statusではステージングの有無以外にファイル変更の有無を確認できます。ステージングした後にファイルを編集(index.htmlを変更)した場合再度git statusすると緑色で表示されていたファイルは上側のまま赤色になります。

他にも使えるコマンドまとめ

全部ステージングに追加する

$ git add --all

コミットした履歴を見る

$ git log
// 変更した内容まで見る
$ git log -p
qキーで閉じる

変更した差分を見る

$ git diff

変更したコードを緑色で表示(削除は赤色、追記は緑色)

ブランチを作成する

$ git branch branchname

現在のブランチを見る。アクティブになっているブランチには*がつく。

$ git branch
* master

ブランチを切り替える

$ git checkout branchname

スタッシュする

$ git stash save "説明"

スタッシュを戻す

$ git stash apply

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index