はじめてのGit バージョン管理をしてみよう

Gitとは何か?

ファイルのバージョン管理システムです。次のようなことができます。

  • ファイルの更新履歴を保存しておくことができる
  • 編集前の状態に戻すことができる
  • チームで作業する際、他のメンバーの修正を誤って上書きしてしまうことが無い

大切な用語を紹介

こちらの用語はちょっとイメージが難しいかもしれませんが「段階」とか、「ステップ」とか、「通るべき道、手段」のようなイメージをしてください。

  • リポジトリ
    ファイルの更新履歴を保存する場所
  • リモートリポジトリ
    複数人で共有するためのリポジトリ(Githubなど)
  • ローカルリポジトリ
    各ユーザが利用するマシン(PCなど)にあるリポジトリ
  • ワークツリー
    各ユーザが実際に作業をしている場所
  • インデックス
    リポジトリとワークツリーの間の場所。リポジトリに更新を登録する(コミットする)準備をするための場所

リポジトリに更新履歴を登録する順番

更新された情報は、ワークツリーからリモートリポジトリまで順番に登録されていきます。

Gitをインストールする

こちら、長くなりそうなので、参考記事をご確認ください。

Githubアカウントとリポジトリの作成

ここで言っている「リポジトリ」とはGithubに作るリポジトリで、リモートリポジトリのことを表します。GitHubアカウント作成とリポジトリの作成手順をご確認ください。

ディレクトリの作成とGit管理

デスクトップに「test」という名前のディレクトリを作成し、Git管理を始めましょう。ターミナルを開いて、以下のコマンドを入力してください。

# デスクトップへ移動します
$ cd ~/Desktop

# 「test」という名前のディレクトリを作成
$ mkdir test

# 「test」ディレクトリに移動
$ cd test/

# Gitの管理を始めるコマンド 
$ git init

デスクトップに「test」という名前のディレクトリが確認できれば成功です🙌

(ワークツリーで)ファイルを修正する

「test」ディレクトリ内に「test.text」というファイルを作成しましょう。

# 「test」ディレクトリに移動
$ cd ~/Desktop/test/

# 「test.text」というファイルを作成
$ touch test.text

「test」ディレクトリの中に「test.text」というファイルを確認できれば成功です🙌ワークツリーの状態を確認しましょう。ターミナルで以下のコマンドを入力してください。

# ワークツリーの状態を確認
$ git status

赤い文字で「test.text」と表示されていれば成功です🙌「test」ディレクトリに「test.text」というファイルが作成されたという意味の更新履歴を表します。

ワークツリーの更新をインデックスに登録する

ワークツリーで「test.text」ファイルが作成するという更新が行われ、更新履歴がちゃんと表示されることも確認しました。次はワークツリーの更新をインデックスに登録します。ターミナルで以下のコマンドを入力してください。

# ワークツリーの更新をインデックスに登録
$ git add <修正したファイル名>

# 今回はtest.textを修正したのでコマンドは以下になる
$ git add test.text

再度、ワークツリーの状態を確認しましょう。

# ワークツリーの状態を確認
$ git status

緑色の文字で「test.text」と表示されていれば成功です🙌「test.text」ファイルが作成されたという更新履歴がインデックスに登録されていることを表します。

インデックスの更新をローカルリポジトリへ登録する

次はローカルリポジトリへ登録しましょう。ターミナルで以下のコマンドを入力してください。

# インデックスの更新をローカルリポジトリへ登録
$ git commit -m "Create test.text"

ローカルリポジトリへの登録はコミットと呼ばれ、git commitというコマンドを使います。
-m “Create test.text”コミットメッセージと呼ばれ、どのような更新履歴なのかをメッセージとして保存します。メッセージ内容は更新履歴によって自分で入力するため、例えば以下のようなものも考えられます。

# コミットメッセージの例
$ git commit -m "Change color"
$ git commit -m "Add button"

ローカルリポジトリの更新をリモートリポジトリへ登録する

さて最後にリモートリポジトリへ更新履歴を登録します。まずはリモートリポジトリと接続しましょう

# リモートリポジトリと接続(一度接続できれば、今後「test」ディレクトリ内では使いません)
$ git remote add origin git@github.com:<Githubのユーザ名>/<Githubのリポジトリ名>.git 

# 例えば以下の設定の場合
# Githubのユーザ名:taro
# Githubのリポジトリ名:gittest

$ git remote add origin git@github.com:taro/gittest.git 

何も表示がされなければ接続が完了しています🙌何か文字が表示された場合、エラーになっているので、もう一度Githubのユーザ名、リポジトリ名を確認してください

# ローカルリポジトリの更新をリモートリポジトリへ登録
$ git push origin HEAD

ローカルリポジトリへの登録はプッシュと呼ばれ、git pushというコマンドを使います。originは接続されているリモートリポジトリを表します。HEADはローカルリポジトリの最新のコミット(ローカルリポジトリへの登録)を表します。

git push origin HEADを要約すると、以下のような感じになります。

接続されているリモートリポジトリ(origin)に、
ローカルリポジトリの最新のコミット(HEAD)を、
登録する(git push)

おさらい🙌

Gitを使ったバージョン管理ができるようになりました!!

しかしこれは個人で管理する場合に限ります。チームで開発、バージョン管理をする場合、今回の内容を踏まえてもう少しだけ覚えることがあります。

まだまだgitは奥が深いので頑張って勉強していきましょう。