Git(ギット)普段使い

#概要
Git(ギット)を使えばメモとかエクセル・ワードなどの資料とか帳簿とか家計簿とかレポートとか論文とか何でも手軽にバージョン管理できる。

OS標準機能にすべき便利さ。

特にファイル名に「何とか資料20181206.doc」のように年月日つけて定期的にバックアップを取るようなファイルはGit使って管理すれば便利。
いつでも古いバージョンを取り出せるので古いファイル残しておく必要がない。

この記事は新しいツール使うのを面倒くさがって頑なにGitの使用を渋る人(頑なにSVN使い続けるユーザ)に、簡単で便利ですよと示すことが主目的である。
が、そもそもバージョン管理とかいうものよく知らんという人にも伝わるように分かりやすく説明したいと思う。

#インストール

以下のソフトをインストールする。
インストール中の選択肢は「Yes」か「はい」か「OK」を選択していけばよい。

| ソフト      |       URL | インストール方法    |
|:-----------------|:------------------|:-------------------|
|Git for Windows|https://gitforwindows.org/|Downloadクリックして後は指示に従ってインストール|
| TortoiseGit(トータスギット)|https://tortoisegit.org/|Downloadクリックして64bitなら「for 64-bit Windows」をダウンロード後は指示に従ってインストール|
| TortoiseGit日本語化|https://tortoisegit.org/|Downloadクリックして下のほうの「Language Packs」のところの:flag_jp:の64 Bitなら64 Bitのsetupをダウンロードしてインストール|

#使う

##リポジトリ作る
Testフォルダの下に管理したいファイルがあるとする。
その場合、Testフォルダにリポジトリを作る。


![01リポジトリ作成.png](https://qiita-image-store.s3.amazonaws.com/0/314376/3d3845a8-8636-db17-7225-69ab195d8a9e.png)


右クリックして「Gitここにリポジトリを作成」を実行する(なんか聞かれるけど、OKでよい）。


以下のようにTestフォルダの下に「.git」というフォルダができる。これがリポジトリ。
**※「.git」は非表示フォルダなので普通は表示されない。表示されなくても別に良い。**

![02リポジトリはこれ.png](https://qiita-image-store.s3.amazonaws.com/0/314376/8583e9f4-79cb-f35f-cb93-f3f3998dc2b5.png)


##リポジトリとは？
**人の代わりに、いつ、どこで、誰が、何を変更したか、を記憶してくれる。**ようなもの。
「.git」に管理対象にしたファイルのコピーが保存されていると思えばよい。

ただし、作っただけではまだ何も管理していないし、何も記録していない。

管理に登録したり、変更を記録するには以下の手順を実施する。

##リポジトリへのコミット
TestフォルダのリポジトリにTestフォルダ内の全ファイルを管理対象にする。

管理対象の変更(追加や削除)やファイルの変更を記録するには**「コミット」**をする。
**「コミット」**することでリポジトリに記録される。

リポジトリはコミットした日と内容を全部記録してくれる。


![03コミット.png](https://qiita-image-store.s3.amazonaws.com/0/314376/fd5d4242-c7e1-e445-1fff-c5820ae6eef3.png)


Testフォルダを右クリックして「Gitコミット」を選択すると以下の画面がでる。

![コミット画面.png](https://qiita-image-store.s3.amazonaws.com/0/314376/06d5d9a8-1e0a-e135-2908-fb8d11c26e00.png)


「バージョン管理課のファイルではありません」の下のファイルは管理外のファイル。
チェック☑をいれると管理対象に選択できる。

![コミット画面2.png](https://qiita-image-store.s3.amazonaws.com/0/314376/6d5a5025-241d-273a-5ebb-1ddb3107274d.png)

画面上のメッセージに何かメッセージを入れると**「コミット」**ボタンが押せるようになる。
(メッセージはなんでもいい。この例では「ファイル追加」を入力した。)


**「コミット」**ボタンを押すとリポジトリにファイルが登録される。


##ファイルを変更したら**コミット**
ファイルを編集後、上記手順と同様の手順で**「コミット」**をする。

するとその時点の内容が記録されていく。

記録した時点の状態にいつでも戻すことができる。

##編集中の変更の確認
まだコミットしていない編集中の内容は、右クリックメニューの「差分」から確認できる。

![04差分ボタン.png](https://qiita-image-store.s3.amazonaws.com/0/314376/64163877-1be4-33f9-f493-553ee01e7248.png)


以下のように差分が表示される。

![差分を見る.png](https://qiita-image-store.s3.amazonaws.com/0/314376/5502a3c9-ea11-5c42-2809-d4c59a401d85.png)


##過去の変更を見る。
右クリックメニューから「ログ表示」をクリック。

![05ログを表示.png](https://qiita-image-store.s3.amazonaws.com/0/314376/b28c9e5f-8957-02cd-208a-405facac993d.png)

すると以下の画面がでる。

![06ログ画面.png](https://qiita-image-store.s3.amazonaws.com/0/314376/b056d466-ece3-67ca-826f-7abeaebc035a.png)


この画面では過去のいつどんな変更がされているかが表示される。

画面下部のファイル名をクリックすると差分が表示される。


##過去のコミットした時点の状態を復元する

ログを表示して、"masterをここへリセット"で戻せる。

![07masterをここへリセット.png](https://qiita-image-store.s3.amazonaws.com/0/314376/3a809303-9a89-eb86-dd6a-52c56c837273.png)


##管理対象の変更(追加や削除)　別の方法

管理対象の変更(リポジトリへの追加や削除)を上記以外の別の方法でもできる。
ただし、最後に**「コミット」**して初めてリポジトリに追加・削除が反映される。

###追加
リポジトリに追加して管理対象になったファイルは「緑のレ」マークが付く。
ついていないファイルは管理対象外。

![07管理対象になった印.png](https://qiita-image-store.s3.amazonaws.com/0/314376/78fe2b0e-884d-b1fa-da01-c77d23db9c6f.png)

![08追加.png](https://qiita-image-store.s3.amazonaws.com/0/314376/a6b60f23-105a-9076-51d5-941eafcf4eed.png)



**「追加」**で管理対象にできる。
このあとに**「コミット」**して初めて管理対象として登録される。

間違ったファイルを**「追加」**してしまった場合は、右クリックメニューから「変更の取り消し」をすることで取り消せる。

ただし、コミットしてしまった後では管理対象から**「削除」**＆**「コミット」**して、管理対象から除外するしかない。

###削除

管理対象に登録済みのファイルの右クリックメニューを表示すると、**「削除」**の項目が追加されている。

![09削除.png](https://qiita-image-store.s3.amazonaws.com/0/314376/03489f3a-e788-fcd2-c323-8a5719d416fa.png)


**「削除(ローカルを保持)」**：選択後にコミットすると管理対象から外れる。ファイルは残る。

**「削除」**：管理対象から外し、さらにファイルも削除する。

どちらで削除しても問題はない。

**「削除」**しても、リポジトリはそれまでの変更は全部覚えている。
いつでも削除直前の状態に戻してファイルも元通りに復元できる。

※
管理対象のファイルをごみ箱に入れて削除した場合はどうなるか。
リポジトリの管理対象には登録されたままなので「行方不明」状態になる。

ファイルがあったフォルダで右クリックしてメニューから「変更の取り消し」をやれば元に戻せる。



#バックアップ
一番安直な方法は、リポジトリがあるフォルダごと(上記例ではTestフォルダ)zipで固める。
それをDropBoxやUSBメモリに保存すればよい。

![10Zipで固める.png](https://qiita-image-store.s3.amazonaws.com/0/314376/a96e241f-e488-9496-74fc-fde044f14375.png)


それ以外の方法には、GitHubやサーバ上のリポジトリへPushする方法がある。
Gitを気に入ってそこまで使いこなそうと思った人は調べてみてください。