きっと続かんブログ

勉強したことや人に言いたいことを書く。

バックアップとしてGitを使う

プログラムとかのバックアップとしてgitを使うことにした。githubを使った共同開発やらブランチ切るやらいろいろできるみたいだけど、シンプルにバックアップとりたいだけの人のために。

環境構築

http://git-scm.com/
からgitをダウンロード
C:\Program Files\Git(任意) にインストール

[option]ユーザー設定

$ git config --global user.name ***
$ git config --global user.email ***

ちなみにこの設定は.gitconfigに記述され、直接書き換え可能。

チュートリアル(1)はじめてのコミット

①ローカル環境にリポジトリを作成

$ mkdir practice  
$ cd practice  
$ git init  

リポジトリは状態を保存する場所。
git initするとリポジトリが作成され、カレントディレクトリの変更履歴が保存されるようになる。

②ファイル作成

practice内にsample.txtを作る。内容はなんでもよし。

③インデックスに登録

$ git add sample.txt

新しく作成・変更したファイルやディレクトリは、まずaddコマンドでインデックスに登録する。
インデックス(ステージとも言う)は、リポジトリにコミット(後述)するためのファイルを一時的に保存する場所。

④commitする

$ git commit -m "first commit"

commitコマンドによって、リポジトリに、インデックスに登録したファイル達の状態が保存される。
※以降、ファイルを変更⇒add⇒commitを繰り返す。
※コミットするとインデックスはクリアされるので、変更の都度addの必要がある。

チュートリアル(2)変更をコミットしてみる

①ファイルを変更

sample.txtに何か書く

②インデックスに登録

$ git add sample.txt

③コミットする

$ git commit -m "second commit"

変更のたびcommitすることで、バックアップをとることができる。

チュートリアル(3)ファイルを昔のcommitに戻すには?

では、バックアップを復元するにはどうすればよいか。
ここでは、sample.txtを"first commit"時の状態に戻してみることにする。
①コミット番号を取得

$ git log
C:\...\myGit\practice>git log
commit 63357974102b5acc65bf0d4f111a0a850d1a90a8 (HEAD -> master)
Author: ***
Date:   Tue Aug 21 01:30:23 2018 +0900

    second commit

commit 945738a33f111c57b3efed3cffcbf13b3b9e15c0
Author: ***
Date:   Tue Aug 21 01:14:24 2018 +0900

    first commit

②first commitに戻す

$ git checkout  945738a33f111c57b3efed3cffcbf13b3b9e15c0 sample.txt
# git checkout [コミット番号] [ファイルパス]

これで、sample.txtは前の状態に復元された。実際にファイルを開いて変更前に戻っていることを確認しよう。
もちろん、やっぱり新しいcommitに戻したい!となれば同じようにできる。

まとめ

・最初に「リポジトリ」を作る
・変更のたび「インデックスに追加(add)」からの「リポジトリにコミット(commit)」

コメント付で簡単にバックアップとれる。これだけでもかなり捗りそうな予感。
消したファイル復元できるのか気になるけど眠いので今度。