バージョン管理ツール、Git。記事も多いし、仕事で使っているのであれば使い方に迷う事もない便利なツール。
とはいえ、プログラムも初めてといったレベルだとちょっと敷居が高いのも事実。何がいいかもわからず、既に用意された基本無料サーバー(GitHub とか)へのアクセス方法ばかりが情報として出てくるため、
- 知らない間に、(コードを)知らない人に見られるのはまだちょっと…
- プライベートアクセスにしたいけど、保存容量が小さすぎて有料にせざるを得ない…
- そもそも、それ、プログラムに必要なの…?
そんな方に向けて、最低限で Git の入り口を叩く方法を紹介します。
なお、最低限のため Git らしい使い方をしていない部分もあります。
今回の使い方をマスターしたら、改めてより知識を深めていってください。
そもそも何が便利なの?
初心者向けなので、一応解説しておきます。
曲がりなりにもプログラムを経験した事があれば、こう思ったことはないでしょうか?
ウワッ! 間違えて大切なファイル消しちゃった!
ソース変更した覚えがないのに、急に動かなくなった…
不用意に改良したら、前よりひどくなった…元に戻したい…
ウワッ! 間違えて大切なファイル消しちゃった!
「間違ってファイル消した!」はほとんどの人が経験するんじゃないでしょうか。苛立ちと焦燥の中必死でファイル復活方法をググったりしたはず。
消した直後なら取り返す術もあったのに、自分で色々やっちゃってファイルが取り戻せなくなった人もいるでしょう。
Git なら「消してしまったファイルを簡単に復活させる」事が可能です。
ソース変更した覚えがないのに、急に動かなくなった…
「ソース変更した覚えがない」というのは大抵間違いで、無意識になんか変えちゃってたりするものです。
例えば a = a + 1; となっている部分にカーソルがうっかり当たっていて、a = a + 21; にしてしまい、なんとなくセーブしてしまうとか…。
ありえんと思うだろ? でも、実話。
こういった時、Git なら「前回と最新のファイルを比較して、どこを修正し(てしまっ)たか見ることが可能」です。
不用意に改良したら、前よりひどくなった…元に戻したい…
「不用意に改良」も多くの人が初心の頃やったんじゃないでしょうか。ソースが汚くなったからリファクタリングしたつもりが、思ったより綺麗にまとまらず、色々修正してわけがわからなくなった…みたいな。
こういう時、一旦全部元に戻してからやりなおしたい、なんてことありますよね。
Git ならそれを行うことも可能です。
なお、これらの利点だけでよければ Git ではなく SVN でもいいっちゃいいのですが、今後の事も考えて、 Git で話を進めます。
TurtoiseGit
TurtoiseGit は、この Git をエクスプローラーの拡張機能として使うことが可能です。

チェックついたファイルが「更新済み」、!マークが「更新した後、変更された」事を表しています。
GitHub じゃないの?
多数の人にパブリックで公開したり、複数人で開発する場合などは GitHub や、それに似た Git クラウドサービスを使うかもしれません。
ただし、個人で使うだけなら実は GitHub は不要です。ローカルで Git の使い方を覚えてから GitHub デビューすると戸惑いがなくていいと思います。
TurtoiseSVN から GitHub へアクセスする方法も、もちろんあります。
それについては別記事で紹介します。
インストール
git for windows と TurtoiseGit の2つをインストールします。
git for windows

ダウンロード&インストール
git for windows の設定項目は多岐に渡り、重要なものが多いです。(All 英語なのが不安に拍車をかける)
基本的には「Next」を選択していきます。個人的に注意が必要そうな画面だけ挙げておきます。





Windows なら上、mac や unix なら中央、自分でなんとかできるなら下

今回は不要案件ですが、将来的な事も踏まえ上で OK だと思います
セキュリティ不要なら None


インストールが完了したら、コマンドプロンプトでユーザー名とメールアドレスを登録しておきましょう。
git config --global user.name [自分の名前]
git config --global user.email [メールアドレス]
後程、GitHub などを使うこともあるかもしれませんので、その時登録する内容にしておくと間違いありません。
Turtoise Git


古かったり、格安 PC でなければ大体 64bit
TortoiseGit-X.X.X.X-Xbit.msi(本体)、TortoiseGit-LanguagePack-X.X.X.X-Xbit-ja.msi(日本語パッケージ)の順にインストールします。選択は全てデフォルトで「Next」 or 「次へ」

Configure TurtoiseGit to use this language にチェックを入れ忘れた場合、手動で日本語を選択します。
エクスプローラで 適当なファイルを右クリック > TurtoiseGit > Settings
。
一番上の General を選択し、Lauguage を日本語(日本)にして OK。
使い方

本当は Repository(リポジトリ)と clone(クローン)の間にもう1つありますが、敢えて紹介せずこの2つだけ説明します。
clone が自分の作業エリアです。ここには、Git を使う前と同じようにファイルが全て存在します。
.git というフォルダが作成されます。これは重要なので消さないでください。
エクスプローラーの設定によっては、.git が見えないかもしれません。
エクスプローラーで 表示 > 隠しファイルにチェック
することで見えるようになります。
Repository が最初から最新まで、全てのバージョンのファイルを取っておく器です。
clone を更新したら「コミット&プッシュ」することでリポジトリに保存します。(ゲームでいうとセーブ)
clone で編集したり、削除したファイルを「変更の取り消し」で元に戻すことも可能です。(ゲームでいうとロードだが、ファイル単位で指定可能)
例
リポジトリを作成
まず、Repository を作成します。今後も増える事を考えて、git/test.git/ というフォルダを作成しました。

次に test.git/ を右クリックし、Git ここにリポジトリを作成 を選びます。
これが図でいうところの Repository になります。


Bare を作成、にチェックを入れてください
成功すると、こんな感じでファイルが作成されていると思います。


クローンを作成
次に、clone を作成します。
先ほどのリポジトリとは別の、自分が作業するフォルダを作成してください。
ここでは gitclone/ としました。

gitclone/ を右クリックし、今度は Git クローン(複製)... を選びます。

URL は Repository の場所です。
file:/// は必ずつけてください。D:\git\test.git であれば file:///D:\git\test.git とします。
ディレクトリは clone の場所です。
デフォルトでリポジトリのディレクトリ名が付与されます。
gitclone/ でクローンした場合、gitclone/test/ が clone ディレクトリとなります。
変更することも可能ですが、既にファイルの入っているディレクトリは指定できません。
成功すると gitclone/ の下に test/ というフォルダが作成されます。
まだ何も入っていないので、.git/ のみが見えていると思います。

エクスプローラーの設定によっては、.git が見えないかもしれません。
エクスプローラーで表示 > 隠しファイルにチェック
することで見えるようになります。
クローンディレクトリに管理するファイルを置く
このフォルダに、必要なファイルを入れてください。
テストでテキストファイルを1つ作成してもいいですし、例えば unity の環境であれば以下のフォルダを全てコピーします。
Assets/
Packages/
ProjectSettings/

空ディレクトリは Git の制約上、扱えないようです。
unity の Library/ ディレクトリなどはコピーしないでください。
このディレクトリは人が編集しないため、履歴を取っておいてもあまり意味がない(容量ばかりが嵩む)からです。
完了したら、gitclone/test/ のフォルダを右クリック > Git コミット(C) -> "main"...
を選択。

メッセージに、今回何を更新したか、簡単な一言を書きます(必須)。
下の欄に今回追加した「管理外」のファイル一覧があるので「すべて」を選択します。
その2つが完了すると「コミットしてプッシュ」が選択できるので、選択します。
チーム開発を念頭に置く場合は「コミットしてプッシュ」ではなく、まずは「コミット」する習慣をつけた方がいいかもしれません…が、今回はそれについては触れません。
成功すると無事、Repository にファイルが保存され、エクスプローラーには保存された事を示すアイコンがつけられます。

以後、ファイルは状態に応じて次のようになります。
- ファイルを新規追加した場合は「管理外」と表示される(チェック&コミットすると Repository に新規追加される)
- 編集した場合はオーバーレイアイコンが!になって青文字表示、自動的にチェックがつく(コミットすると Repository も更新)
- 削除したファイルは「行方不明」と表示され、自動的にチェックがつく(コミットすると Repository からも削除)

誤ってファイルを削除した場合、TurtoiseGit > 変更の取り消し
で削除ファイルを元に戻すことができます。
ここまでで最低限の使い方は出来るようになりました。
より細かい使い方については次の記事にて紹介します。
この方法のデメリット
この方法はサーバーいらずで1番楽な Git の使い方であるものの、サーバーを経由しない file プロトコルのアクセスなので、複数人による同時アクセスは出来ない、と思っていてください。
あくまで、個人でちょっとしたものを作る時を想定しています。
たとえば Dropbox など共有エリアに Git リポジトリ作れば表向き複数人でアクセスできる…ように見えますが、同時にプッシュした場合データが破損、欠損するでしょう。