SionGames 技術Blog

C#やUnityを触っているサーバープログラマーが色々と書いていく所

バージョン管理ツール TortoiseGit導入と使い方

プログラミングをするならバージョン管理ツールは必ず導入したい所。

今の時代はGitを扱えた方が日々の仕事や就活で役に立つ機会が多いと思います。

今回はTortoiseGitを使ってGUI操作が可能なGit環境を構築します。

 

Gitを初めて扱う方にもわかりやすいように、イラストを交えて導入手順と普段の使い方を説明します。

 

1. Gitインストール

まず下からGitをダウンロードします。

赤く囲んだところをクリックすると最新のバージョンがダウンロード出来ます。

f:id:SionGames:20190209113820p:plain

https://git-scm.com

落としてきたインストーラーを起動してインストールして下さい。

インストーラーを起動すると色々と選択画面が出てきますが、特に修正なくNextで問題ないと思います。

 

2. TortoiseGitインストール

TortoiseGitをダウンロードします。

こちらもバージョンは最新のもので構いません。

OSのシステムに合わせて32bit/64bitを選択して下さい。

f:id:SionGames:20190209124715p:plain

https://tortoisegit.org/

赤丸で囲んだDownloadをクリックすると下のページが表示されます。

f:id:SionGames:20190209124802p:plain

 

LanguagePackを入れておくとGUIインターフェースが

日本語化されるのでわかりやすくなると思います。

インストール順は Git→TortoiseGit→LanguagePack でないといけないので注意して下さい。

f:id:SionGames:20190209124815p:plain

無事にインストールが終わった場合、適当なフォルダを右クリックするとTortoiseGitの項目が増えていると思います。

 適当なフォルダを右クリックする事でGit関連の操作が可能になっているはずです。

下の写真のように英語で表記されている場合、日本語化設定を行う必要があります。

f:id:SionGames:20190209205146p:plain

Settingsをクリックするとさらに画面が出てきます。

f:id:SionGames:20190209205305p:plain

Settings画面左側のGeneralをクリック後、Languageの項目で日本語を選択しましょう。

ここで日本語の項目が出ない場合、LanguagePackを再インストールして下さい。

3. Gitの簡単なデータイメージ

 操作説明に入る前にGitのデータの場所について図解しようと思います。

データの移動がイメージできるとGitを深く理解できるようになるはずです。

Gitのデータ構造は大きく3つに別れています。

f:id:SionGames:20190209225157p:plain

・ワーキングディレクト

 →Windows作業フォルダ上にある直接触れる所

・ローカルリポジトリ

 →後述の"コミット"でGitの管理下に置かれたファイル類。

・リモートリポジトリ

  →チームで一つ用意する。

  別のサーバーマシン上で保存されることが多い。

  GitHub等の外部サービスはこれを用意してくれている。

4. TortoiseGitで最初に行う操作

最初に作業フォルダとGitを紐づける処理を行う必要があります。

既にリモートリポジトリがGitHub等で存在する場合は、フォルダ右クリック→Gitクローンでリモートリポジトリの内容をマシン上に落してきて下さい。

f:id:SionGames:20190209231032p:plain

上の写真だとD:\work\test\ProjectD\AAAAAAフォルダ内に色々とコミットされたファイルが格納されるようになります。

 

リモートリポジトリが用意されておらず、ひとまずバージョン管理のみ行いたい場合はフォルダ右クリック→ここにリポジトリを作成を選択して下さい。

f:id:SionGames:20190209232533p:plain

Bareを生成にチェックを入れないようにする事で

作業ディレクトリとローカルリポジトリのみの構成に出来ます。 

通常はリモートリポジトリを別のマシンに置く事で、バックアップ的側面を持たせることが出来ます。できればリモートリポジトリを別のマシンに用意する事をお勧めします。

また、リモートリポジトリが無い場合は後述する"プル"や"プッシュ"が出来なくなります。

5. TortoiseGitで普段行う操作

基本的には 作業前にプル→ファイル修正→コミット→プル→プッシュ

 

"プル"

多人数で一つのリモートリポジトリを使用している場合は変更作業前に一度"プル"を行ってから作業するように癖を付けましょう。これを行うことで無用な"競合"の発生を抑えることが出来ます。

"プル"を行うことで他人がリモートリポジトリに対して適用した変更を、自分の作業フォルダまで落としてくることが出来ます。

f:id:SionGames:20190210001537p:plain

"プル"の具体的な操作はフォルダを右クリック→TortoiseGit→プルです。

f:id:SionGames:20190210003922p:plain

出てきたウィンドウでOKボタンを押すとプルが完了します。

"コミット"

作業を進めて区切りが良くなったら一度コミットを行いましょう。

f:id:SionGames:20190210010845p:plain

f:id:SionGames:20190210011344p:plain

f:id:SionGames:20190210011707p:plain

上の写真では既存の説明書.txtの内容を修正して、新しい追加仕様.txtを新しくGit管理下に追加するという内容です。 

新規ファイルが表示されない場合、バージョン管理外ファイルのファイルを表示にチェックが入っているか確認して下さい。

コミットボタンを押すことでローカルリポジトリに対して変更を適用できます。

"プッシュ"

"コミット"した内容をリモートリポジトリに適用します。

f:id:SionGames:20190210032711p:plain

"プル"の具体的な操作はフォルダを右クリック→TortoiseGit→プッシュです。

f:id:SionGames:20190210033319p:plain

出てきたウィンドウで特に触らずOKボタンを押すと完了です。

6. 競合対処

複数人で作業しているとよく競合を起こします。

同じファイル、同一行を修正コミットした場合に発生します。

f:id:SionGames:20190210040343p:plain

 競合の解決を押すとウィンドウが出てきます。

MERGE_HEAD(origin/ブランチ名)を使って競合を解決を押すと、自分の修正を無かったことにして競合を解決します。

HEADを使って競合を解決を押すと、自分の修正が正しい物として押し通します。

今回は手入力で競合を修正してみます。

f:id:SionGames:20190210040709p:plain

下の写真だと自分が超ダッシュに書き換えてコミットしている間に、他の人が誤字を修正してコミットプッシュしたので競合を起こした例です。

f:id:SionGames:20190210040939p:plain

実際はDashが正しかった。

4行目に空行がでてきそうに見えますがこれが正しい修正です。よく見ると改行マークが無いのが確認できます。

この内容で競合を解決してみましょう。

f:id:SionGames:20190210041223p:plain

 全ての競合を解決した後にコミットを行って下さい。

すると下の画面が出てきます。

f:id:SionGames:20190210040927p:plain

注意しなければならないのは、写真に書かれている通り修正した覚えのないファイルが表示される事があることです。

競合のマージコミットでは他人のコミット内容がここに表示されることがよくあります。

不安に思ってチェックを外してしまいがちですが、そうすると巻き戻りという恐ろしい現象が発生しますので外さないでください。

慣れないうちは他の人に確認を取るなどした方が良いかもしれません。

f:id:SionGames:20190210042001p:plain

上のような画面が表示されるかもしれませんが、これはメッセージの内容がデフォルトのままで良いのかという確認ウィンドウです。

大抵の場合デフォルトのままで良いので、このメッセージを表示しないにチェックを入れた後、無視を押してコミットを完了させましょう。

コミット後はプッシュして下さい。

7. あとがき

今回はブランチ一本で作業している環境の前提で説明しました。

複数ブランチを使用するプロジェクトだと、ブランチ作成やブランチ切り替え、フェッチ、マージを覚える必要があります。

Gitに触れたことが無い人もこの記事を足掛かりに少しずつGitを習得していきましょう!