はじめに
この記事は、Gitの実践的な使い方をまとめています。
Gitを初めて使う方が実際に手を動かしつつ、基本を学んでいただければ幸いです。
Gitとは
最初にGitそのものについて少しお話します。
Gitはバージョン管理システム の一つです。
バージョン管理システムとは、成果物(コードやファイル)に加えられた変更をリポジトリと言われるデータベースに記録するシステムです。
この記録を遡ることで、成果物の種々の変更が「いつ」「誰によって」「どんな理由で」加えられたのか確認できます。
バージョン管理システムが無い場合、変更履歴を確認するために、古い成果物を一緒に常に管理しなければいけなくなってしまいます。
結果、膨大な数のファイルを管理することでストレージが圧迫されたり、変更内容・理由が把握しづらくなったり、チーム作業が困難になったりするなど種々の問題が発生します。
バージョン管理システムには中央集中型システムと分散型システムがあります。
前者はユーザーが一つのサーバーに接続することで、最新の成果物を取得できます。
後者は各ユーザーがリポジトリを持ち、お互いに同期し合うことで成り立ちます。
Gitは後者にあたります。
Gitの環境構築
ここからは実際にGitを使うための準備を行います。
Gitインストール
Gitをインストールしていない場合、以下からダウンロード・インストールを行ってください。
上からGit for Windows, Git for macの順にリンクを載せています。
自分のOSがWindowsなので、以降の説明はWindows向けになります。ご了承ください。
Gitホスティングサービスへの登録
次に、Gitホスティングサービスのアカウントを作成します。
Gitホスティングサービスは、後述のGitリポジトリをオンラインで管理し、アクセスできるようにするサービスです。GitHub
やGitLab
・Amazon Commit
等様々な種類があります。
Gitの初期設定
Gitのインストールが完了したら、ユーザー情報を設定します。
これはバージョン管理において「いつ」「誰が」「どんな理由で」を記録するために利用されます。
コマンドプロンプトを開き、以下のコマンドを入力してください。
git config --global user.name `user_name` #user_nameにはGitホスティングサービスに登録したユーザー名を入力
git config --global user.email `user_email` #user_emailにはGitホスティングサービスに登録したメールアドレスを入力
global
オプションででPCのどこでGitを利用してもこのユーザー情報を付与できます。
以下のコマンドで、きちんと登録されたか確認することができます。
自分が登録したユーザー名・メールアドレスが表示されれば成功です。
git config user.name
git config user.email
以上で環境構築は終了です。お疲れ様でした。
ブランチについて
実際にGitを使って資材管理をする前に、「ブランチ」という重要な概念を説明します。
ブランチは、特定のコミットの状態を保持するポインタのような存在です。
ある時点でのコミット(保存された変更履歴)から新しいブランチを作成する(ブランチを切るといいます)ことで、独立した作業領域を確保できます。
現在いるブランチはHEADというものによって決定されています。
下の画像はmain
ブランチで最初のコミットを行った例です。
個人でGit管理しているファイルの初期状態は大抵このようになっています。
プロジェクトによりますが、最初のブランチ名はmain
・master
・develop
のいずれかであることが殆どです。
コマンドラインでgit branch
を実行して、現在存在するブランチ一覧を確認します。
先頭にアスタリスクが付いたブランチが、現在いるブランチです。
現時点ではmain
のみが存在していますね。
ここでブランチを切ってみます。以下のコマンドをコマンドラインで実行してください。
git checkout -b <作成したいブランチ名>
今回はfeature-1
というブランチを作成しました。
git checkout -b
コマンドを使うと、新たにブランチを作成すると同時に作成したブランチへ移動します。
もう一度git branch
を実行すると、feature-1
ブランチの作成・移動が行われていることが分かります。
HEADが指し示すブランチがmain
からfeature-1
へ変わっています。
以下のようなイメージです。
この状態で、Greetings2.txt
を編集・保存し、コミットします。
以下画像のようなイメージです。
現時点では、feature-1
ブランチで行われたコミットは他のブランチからは見えません。
以下コマンドのいずれか実行してmain
ブランチに移動し、Greetings2.txt
を開きます。
git checkout main
または
git switch main #git 2.23以降を使用している場合
feature-1
ブランチで追加した「Hello!」の文言がありませんね。
これは、main
ブランチの状態がはfeature-1
でコミットを行う直前であるためです。
このようにブランチを適切に切ることで、複数人での開発が可能になります。
ブランチ同士は以下のコマンドで統合することができます。
git merge <統合したいブランチ名>
これはマージと呼ばれ、コマンドの引数で指定したブランチの変更を現在いるブランチに反映することができます。
main
ブランチにいる状態で、feature-1
ブランチをマージする場合は以下のようになります。
マージ後にGreetings.txt
を開いてみます。
feature-1
ブランチで行われた変更がmain
ブランチに反映されています。
最後に、必要なくなったブランチを削除しましょう。
git branch -d <削除したいブランチ名>
Gitにおいては、このようにブランチを切ってマージすることが開発の基本になります。
Gitを使ったファイル管理
ここからは、実際にGitを使ってプロジェクトファイルを管理する流れを説明します。
個人開発と複数人開発の場合で若干流れが異なるので、順に説明していきます。
個人開発の場合
1. ファイル作成と編集
まず、Git管理したいファイルを作成します。
今回はQiita
というフォルダを作り、そこへGit管理する資材を格納します。
ここで見せているフォルダの場所・フォルダ名・資材名は任意に変更してください。
今回はこのフォルダ配下でGreetings.txt
というテキストファイルを作成・Git管理します。
右クリック→新規作成(W)→テキストドキュメント
または以下コマンドをコマンドラインで入力してください。
echo. > "C:\Qiita\Greetings.txt"
-
C:\Qiita\
は保存したいディレクトリのパスに置き換えてください。 -
Greetings.txt
は作成したいファイル名にしてください。
のように新規ファイルが作成できれば成功です。
2. git init
このステップでは、ディレクトリQiita
がバージョン管理対象フォルダであることをGitに認識させます。
同じディレクトリでコマンドラインを起動し、以下コマンドを入力してください。
git init
すると、同じディレクトリに.git
という隠しファイルが作成されます。
このファイルが表示されない場合は、エクスプローラー→「表示」タブ配下「表示/非表示」→「隠しファイル」のチェックボックスにチェックが入っていることを確認してください。
これでこのステップは完了です。
3. 差分のステージング
ステップ3でgit init
を実行すると、Greetings.txt
に「?」が表示されたことにお気づきでしょうか。
これはGitがGreetings.txt
をバージョン管理対象としてまだ認識していないことを表しています。
このディレクトリをコマンドラインで開き、git status
と入力するとGreetings.txt
がUntracked Files
になっていることが確認できます。
Gitはバージョン管理対象フォルダ内の資材を自動で追跡するのではなく、指定された資材のみ追跡するのですね。
では、Greetings.txt
が追跡対象であることをGitに認識させましょう。
このディレクトリのパスをコマンドラインで開き、以下コマンドを入力してください。
git add Greetings.txt
git add 資材名
でコミット(変更をデータベース上に正式に保存すること)の前段階であるステージングが完了します。
資材名の代わりに「*」を入力すると、追跡されていない資材を一意にステージング可能です。
入力後にもう一度git status
と入力し、先程ステージングした資材がChanges to be committed
一覧に表示されていれば成功です。
以下のコマンドを入力して、ステージングしたファイルのコミットを行いましょう。
git commit Greetings.txt -m "Greetings.txtをコミット"
以上が個人開発におけるGit操作の一連の流れになります。
複数人開発の場合
次に、複数人開発でのGit操作の流れを紹介します。個人開発に比べて手順が増えます。
文章量を減らすため、個人開発の場合との重複部分は省略します。
1. リポジトリのクローン
プロジェクトを初めて取得する場合のみ、ローカルにリモートリポジトリ全体をダウンロードする必要があります。
以下コマンドを実行してください。
git clone <リモートリポジトリのURL>
2. 作業ブランチの作成
クローンしたリポジトリのmain
ブランチやdevelop
ブランチから、作業用の新しいブランチを作成します。
以下コマンドを実行してください。
git checkout -b <作成したい作業ブランチ名>
クローンしたリポジトリのどのブランチにいるか分からない場合は、git branch
で確認できます。今いるブランチには先頭にアスタリスクが付けられます。
3. 作業ブランチで編集・コミット
個人開発における3.差分のステージング
と同様の内容です。
4. リモートリポジトリへコミットをプッシュする
先程のコミットはローカルで行ったものなので、他の開発者からはコミットの内容を見ることができません。
以下のコマンドで、ローカルで行ったコミットをリモートリポジトリへ反映します。この操作はプッシュと呼ばれます。
git push origin main
origin
とmain
は以下のように読み替えてください。
- origin: プッシュ先のリモートリポジトリ名
- main: プッシュするブランチ名
以上が複数人開発におけるGit操作の流れになります。
ここまで完了したら、レビュアーにレビュー依頼を出しましょう。
最後に
Gitは、個人開発から大規模なチーム開発まで、多くの場面で活躍する強力なツールです。
出来ることが多い分、はじめは慣れるのに苦労するツールでもあります。
この記事でまずは基本的な操作を覚え、少しずつ出来ることを増やしていきましょう。