Gitとは今もっとも使われているバージョン管理システムだ。
このページではGitの使い方についてできるかぎり簡単にまとめてご紹介していこう。
目次
- 1 Gitとは?
- 2 バージョン管理システムとは?
- 3 Gitのインストール方法
- 4 事前準備
- 5 Gitを使うにあたって覚えておきたいこと
- 6 Gitを使ってみよう
- 6.1 リポジトリの作成
- 6.2 Bareリポジトリ作成の確認
- 6.3 リポジトリ作成完了
- 6.4 ローカルリポジトリの作成
- 6.5 クローンの作成ダイアログ
- 6.6 クローンの作成
- 6.7 リポジトリ状態の表示
- 6.8 ファイルを作成
- 6.9 リポジトリにファイルを追加
- 6.10 ファイルの追加終了
- 6.11 追加されたファイルの表示
- 6.12 ファイルをコミット
- 6.13 コミットダイアログ
- 6.14 コミット実行
- 6.15 さらにファイルを変更
- 6.16 変更されたファイルの表示
- 6.17 変更をコミット
- 6.18 差分の表示
- 6.19 差分表示ダイアログ
- 6.20 ログの表示
- 6.21 ログダイアログ
- 6.22 プッシュ
- 6.23 プル
Gitとは?
出典:Git
Gitとはプログラムソースの変更履歴などを管理する分散型バージョン管理システムだ。
Linuxの開発者リーナス・トーバルズがLinuxカーネルのソースコードを管理するために開発されたものだ。Linuxカーネルのような大規模なシステム開発から、小規模のシステム開発まで規模の大小を問わず、世界中の多くのエンジニアに愛用されている。
ちなみに、"Git"は「ギット」と読み、直訳すると「間抜け」「ろくでなし」という意味であるが、これは開発者であるリーナス・トーバル自身が自分のことを指して自虐的に命名したという説や、"Global information tracker"の略称だとする説もある。
バージョン管理システムとは?
バージョン管理
Gitはバージョン管理システムの一種であるということは理解してもらえたと思うが、バージョン管理システムとは何かということも簡単に説明しておこう。
システム開発では多くのプログラムソースの管理が必要となるが、バージョン管理システムを利用することでそれぞれのプログラムソースがいつ、どの部分が、どのエンジニアによって追加・変更・削除されたかを管理することができる。
もしバージョン管理システムを導入せずに開発を行った場合、誰がいつ、どのような理由でプログラムを変更したかがわからなくなり、システムを構成するプログラムや関連ファイルの状態を把握することができなくなるのだ。システム開発においてバージョン管理システムの導入は必須だと言えよう。
分散型と集中型
バージョン管理システムについては説明したとおりだが、Gitはその中でも「分散型」バージョン管理システムである。バージョン管理システムには大きく分けて「集中型」と「分散型」の2種類があり、主な集中型バージョン管理システムだとCVSやSubversion、Visual Source Safeなど、分散型バージョン管理システムだとGitやBazaar、Mercurialなどが挙げられる。
バージョン管理システムではリポジトリ(repository)と呼ばれるファイルを管理するディレクトリが作成される。バージョン管理システムでは、このリポジトリに対してプログラムソースの追加・編集・削除を行う仕組みだが、集中型の場合はリポジトリが1か所しか作成されないのに対し、分散型の場合はリポジトリが複数作成される点が異なっている。
バージョン管理システムではファイル単位で管理される。集中型の場合は誰かがファイルを修正している間は他のエンジニアがそのファイルを修正したくでもできないため、場合によっては開発効率に影響することがある。
分散型の場合は誰かがファイルを修正していても、各エンジニアの環境にリポジトリが作成されているので、複数のエンジニアが同じファイルを修正することができる。複数のエンジニアが同じファイルを修正した場合、自動または手動でマージすることで、開発効率を高めることができるのだ。
Gitのインストール方法
それではGitのインストール方法を紹介しよう。Gitは基本的にはCUI(Character User Interface)での操作となる。そう、つまりコンソールからコマンドを実行して操作するツールだ。だがそれだと少々使いにくいので、Git用のGUI(Graphical User Interface)ツールをインストールすることにする。
Git用のGUIツールにはいくつかあるが、今回はその中から"Tortoise Git"をインストールしてみよう。Gitツールの中でも使いやすい部類で、日本語対応、もちろん無料で使うことができる。今回インストールする環境はWindows10となるので、参考にしてほしい。
Git for Windowsのインストール
まずはGitを使うための基本ソフトウェアである"Git for Windows"を以下の手順でインストールしよう。
LinuxやMacだとコマンドでやった方が早いだろうが、あえて
(1)ダウンロード
Git for windows
出典:Git
ダウンロードリンク:https://Git-for-windows.Github.io/
Git for windowsを公式サイトからダウンロードしよう。「Download」ボタンをクリックで環境にあったインストーラがダウンロードされる。
(2)インストーラを起動
インストーラを起動し、「Next」ボタンでインストールを進めよう。
(3)インストール場所の設定
インストールするフォルダを決定する。特に変更しない場合はそのまま「Next」で進めよう。
(4)セットアップコンポーネントの選択
セットアップするコンポーネントを選択する。デフォルトのままで問題ない。
(5)スタートメニューの登録
スタートメニューに登録する名称を設定する。ここも特にデフォルトのままで問題ない。
(6)環境変数の設定
PATH環境変数の設定方法を選択する。デフォルトの「Use Git from the Windows Command Prompt」で問題ない。
(7)HTTPS接続設定
HTTPS経由でGitを使う時の設定だ。とりあえずデフォルトの「Use the OpenSSL library」で問題ない。
(8)改行スタイルの設定
改行スタイルの設定を行う。デフォルトの「Checkout Windows-style, commit Unix-style line endings」のまま進める。
(9)Git Bashの設定
コマンドラインでGitを実行するGitBushの設定を行う。デフォルトの「Use MinTTY(the default terminal of MSYS2)」のままで問題ない。
(10)その他オプションの設定
特に変更する必要もないので「Install」ボタンをクリックしよう。
(11)インストール開始
インストールが開始される。
(12)インストール完了
この画面が表示されればインストールは完了だ。
Tortoise Gitのインストール
続いて"Tortoise Git"をインストールしよう。これはGitをGUIで使うための便利ツールだ。はじめて使う方はコマンドよりもGUIで確認した方がわかりやすいだろう。
(1)ダウンロード
Tortoise Git
出典:Tortoise Git
ダウンロードリンク:https://tortoiseGit.org/download/
公式サイトからダウンロードできる。インストーラは32bit版と64bit版に分かれているので、使用しているPCの環境にあったインストーラをダウンロードしよう。
(2)インストーラを起動する
ダウンロードしたインストーラを起動し、「Next」ボタンをクリックして進めよう。
(3)ライセンス画面
ライセンス画面が表示されるので目を通しておこう。
(4)SSHクライアント
SSHクライアントの設定画面。特にデフォルトのままで問題ない。
(5)カスタム設定画面
セットアップする機能をカスタマイズできる。デフォルトのままでも問題ない。
(6)インストール確認
インストール準備が整った。「Install」ボタンをクリックしよう。
(7)インストール開始
インストールが開始される。
(8)インストール終了
この画面が表示されたらインストールは終了だ。
Tortoise Git言語パックのインストール
Tortoise Gitを日本語化する言語パックをインストールしよう。
(1)ダウンロード
Tortoise Git
ダウンロードリンク:https://tortoiseGit.org/download/
本体をダウンロードした同じページに「Language Packs」の覧があるので、そこから「Japanese」のセットアップファイルをダウンロードしよう。
(2)セットアップの開始
セットアップウィザードが表示される。「次へ」ボタンクリックで進める。
(3)インストール開始
インストールが開始される。
(4)インストール終了
この画面が表示されれば、言語パックのインストールは終了だ。
事前準備
TortoiseGitを使うにあたっていくつか準備しておくことがあるので、まずはそこから設定しておこう。
日本語の設定
まずはインストールした日本語の言語パックを有効にしておく必要がある。[スタートメニュー]-[TortoiseGit]-[Setting]で設定画面を開き、[General]メニューの項目「Language」で「日本語(日本)」を選択しよう。
名前とメールアドレスの設定
同じく設定画面の[Git]メニューから「ユーザー情報」欄を登録する必要がある。ファイルを登録する際に名前とメールアドレスが必須なので、先に設定しておこう。
Gitを使うにあたって覚えておきたいこと
Gitのインストールが完了したが、その前に、Gitを使うにあたって覚えておきたい基本的な考え方を説明しておこう。Gitに限らず、他のバージョン管理システムにおいても通じる内容なので、ぜひ覚えておいてもらいたい。
リモートリポジトリ
別のサーバなどに作成され、ネットワークを通じて接続するリポジトリを「リモートリポジトリ」と言う。多人数でシステム開発を行う場合はマスターとなるリモートリポジトリが作成されることがほとんどで、次に説明するローカルリポジトリに反映した内容が、最終的にリモートリポジトリに反映される。
ローカルリポジトリ
自分のPCなどローカル環境に作成されたリポジトリが「ローカルリポジトリ」だ。普段はこのリポジトリに対してファイルの更新などを行う。
クローン
リモートリポジトリの内容をそのままローカルリポジトリとして複製することを「クローン(Clone)」と言う。リモートリポジトリをベースとした開発を行う場合は、まず最初にクローンによるローカルリポジトリの作成が必要だ。
コミット
ファイルを変更した際、変更内容をリポジトリに反映することを「コミット(commit)」と言う。コミットの単位でファイルの差分や変更履歴が管理される仕組みだ。
プッシュ
ローカルリポジトリで変更したファイルの内容をリモートリポジトリに反映することを「プッシュ(Push)」と言う。コミットしただけではローカルリポジトリへの反映のみとなり、リモートリポジトリへの反映までは行われない。リモートリポジトリを使う場合は必ずプッシュすることを忘れないようにしよう。
プル
リモートリポジトにあるファイルの内容をローカルリポジトリに反映することを「プル(Pull)」という。
Gitを使ってみよう
Gitに関する基本的な考え方は理解いただけたろうか。それでは簡単に、実際にTortoiseGitを使ってリポジトリの作成からプッシュ、プルなど一連の操作を紹介しよう。
リポジトリの作成
リポジトリを作成したい任意のフォルダをエクスプローラーで開き、右クリックから「Gitここにリポジトリを作成」を選択する。例として「C:\repo-master」にリポジトリを作成する。
Bareリポジトリ作成の確認
作成するリポジトリをBareリポジトリとするかどうかの確認ダイアログが表示される。Bareリポジトリとは変更対象となるファイルを持たない管理用のリポジトリのことで、リモートリポジトリを作成する時に作成される種類のリポジトリだ。
今回はこのリポジトリをリモートリポジトリとみなすので、「Bareを生成(作業ディレクトリーを作りません)」をチェックしてに「OK」ボタンをクリックする。
リポジトリ作成完了
リポジトリ作成完了のメッセージが表示されると、リポジトリ作成は完了だ。
ちなみに、メッセージでは「レポジトリ」と表示されているが、エンジニアで一般的に使われる表示は「リポジトリ」の方が多い。
ローカルリポジトリの作成
リモートリポジトリをクローンしてローカルリポジトリを作成する。エクスプローラーで右クリックから「Gitクローン(複製)」を選択する。例として「C:\repo-work」にクローンを作成しよう。
クローンの作成ダイアログ
ダイアログが表示されるので、「URL」覧にリモートリポジトリのURLを入力する。今回は最初に作成したリポジトリをリモートリポジトリとして指定した。準備が整ったら「OK」ボタンでクローンを作成しよう。
クローンの作成
Gitコマンドが実行され、クローンが作成される。
リポジトリ状態の表示
クローンを作成してローカルリポジトリを作成すると、エクスプローラーでリポジトリの状態を表すマークが表示されるようになる。これはアイコンオーバーレイと言い、ファイルやフォルダの状態に応じたアイコンが表示される。
ファイルを作成
ローカルリポジトリ(C:\repo-work\repo-master)にファイル「sample.txt」を追加してみよう。
内容は「This is a sample!」とだけ書いたテキストファイルだ。
リポジトリにファイルを追加
作成したファイルを右クリックし、[TortoiseGit]-[追加]を選択する。
ファイルの追加終了
ファイルの追加状況が表示され、選択したファイルがローカルリポジトリに追加される。
ここでは「OK」ボタンをクリックしよう。
追加されたファイルの表示
アイコンオーバーレイが「+」マークで表示された。これはリポジトリに新しく追加されたファイルなどに対して表示されるオーバーレイだ。
ファイルをコミット
それではファイルをコミットしてみよう。sample.txtを右クリックして「Gitコミット」を選択しよう。
コミットダイアログ
コミット内容を登録するダイアログが表示される。メッセージはファイルの変更管理を行う際に重要な項目となるので、どのような起因でファイルの追加・変更などを行ったかを明確に記録するようにしよう。
必要事項を記入したら「コミット」ボタンをクリックしよう。
コミット実行
コミット処理のダイアログが表示される。そのままプッシュすることもできるが、ここでは「閉じる」をクリックしておこう。
さらにファイルを変更
先ほど作成したsample.txtの内容を変更してみよう。ファイルを開いて内容を「Is this a sample???」に変更してみた。
変更されたファイルの表示
エクスプローラーで確認すると、アイコンオーバーレイが赤いマークに変わった。これはファイルやフォルダに変更が発生したことを意味している。
このマークでのファイルやフォルダに変更が発生したかを把握することができる。
変更をコミット
先ほどの要領でファイルをコミットしよう。
差分の表示
コミットした後、以前にコミットしたファイルとの差分を表示することができる。
ここでは前にコミットしたファイルとの差分を表示してみよう。差分を表示したいファイルを右クリックし、[TortoiseGit]-[前のバージョンとの差分]を選択する。
差分表示ダイアログ
差分表示ダイアログでは、このように現在と指定したバージョンとの差分を色付きで表示してくれる。左側が前のコミット時の内容、右側が現在のローカルリポジトリの内容だ。
ログの表示
同じようにファイルの変更ログを表示することができる。コミットの差分を表示したいファイルを右クリックし、[TortoiseGit]-[ログを表示]を選択する。
ログダイアログ
コミット時のメッセージがダイアログの上部に表示される。しっかりメッセージがに登録されていれば、ここを見るだけでどのような変更があったのかを理解することができるのだ。
プッシュ
それではリモートリポジトリにプッシュしてみよう。
エクスプローラーでローカルリポジトリを開き、何もない場所を右クリックして[TortoiseGit]-[プッシュ]をクリックしよう。
プッシュダイアログ
プッシュダイアログが開くので宛先を確認して「OK」ボタンをクリックしよう。宛先の「origin」はクローンした際に自動的に設定される内容で、リモートリポジトリを意味する。
プッシュの実行
プッシュを実行するとプッシュ状況ダイアログが表示される。無事プッシュが成功すればリモートリポジトリにファイルが反映される。
プル
最後にプルの方法を紹介しておこう。エクスプローラーでローカルリポジトリを開き、何もない場所を右クリックして[TortoiseGit]-[プル]をクリックする。
プルダイアログ
プルダイアログが開くので、取得するリモートリポジトリを確認したうえで実行しよう。
プルの実行
プルを実行するとプル状況ダイアログが表示され、リモートリポジトリの内容をローカルリポジトリに反映される。
まとめ
このページではGitのインストール方法と使い方について簡単にご説明してきた。
GUIでもGitは使っていけるので、コマンドがよくわからないという方はまずはこれらの手順でGitを触ってみるのがいいだろう。
突然のコメントすいません。
私は、現在工場の社内SEとしてラインで使用するプログラムの
開発に従事しています。
そこで、最近になりプログラムのバージョン管理を行うことに
なり『TortoiseGit』を使用することになりました。
なんとか、インストールに成功してテスト的に私一人が使用して
使い方がわかってきたら他の開発者へ展開するような感じで動いていますが
すでに3か月ほどやっていますが未だに理解できずネットの中をさ迷い歩いて
ここにたどり着きました。
いきなりの質問で不躾だとは思ったのですが、質問させてください。
この『TortoiseGit』というソフトでは、フォルダごとに個別に管理することは
出来ないんでしょうか?
というのも、当方の環境では複数のラインがありそのラインごと製造製品ごと
に使用しているプログラムが違います。それを管理しようと思って
¥開発フォルダ
¥ライン1
¥ライン1、製造製品1のプログラム
¥ライン1、製造製品2のプログラム
¥ライン2
:
:
というようなディレクトリ構造にしました。
この状態で、『¥ライン1、製造製品1のプログラム』でブランチを
作り切り替えると『¥ライン1』全体が切り替わってしまって
『¥ライン1、製造製品1のプログラム』だけで別ブランチを作ることが
出来ません。
これでは非効率なので何とか『¥ライン1、製造製品1のプログラム』だけで
ブランチを作って、切り替えをした時も『¥ライン1、製造製品1のプログラム』
のみが別ブランチに移るようにしたいのですが方法はありますか?
突然にご質問で大変不躾ではありますがご回答いただけると幸いです。
当方の環境としては、OSはWinXP、『TortoiseGit』のバージョンは
『TortoiseGit-1.8.16.0-32bit.msi』を使っています。
ラインで使用しているプログラムがWinXP下でしか動作しないのでこのような環境に
なっています。
ですが、一応NASサーバを入れてそこにプログラムのバックアップを取るように
環境を作りました。
長文、乱雑な質問になってしまいましたがご回答何卒よろしくお願いします。
いつもご愛読いただきありがとうございます。
Windows上でGitとTortoiseGitが導入された条件化で以下のようなフォルダ構成を作成するとします。
¥開発フォルダ
¥ライン1
¥ライン1、製造製品1のプログラム
¥ライン1、製造製品2のプログラム
この場合「ライン1、製造製品1のプログラム」を右クリックして「Git create repository here...」を選択する事でそのフォルダが独立したリポジトリとして動作します。その他フォルダも同様です。ブランチの派生も「ライン1、製造製品1のプログラム」フォルダ下にて行われます。これは推測ですが、一層上の「ライン1」のフォルダに対して「Git create repository here...」を実行されたのではないでしょうか。
「Gitでリポジトリ内のサブディレクトリを別の中央リポジトリにする」
https://moewe-net.com/version-control/git-subdir-move-to-root
個人ブログのご紹介になりますが、こういった方法で新たに作成したフォルダへ内容を複製しつつ独立したリポジトリとして動作させる方法があるようです。参考になればと思います。