Gitでlocalに変更履歴を保存する
なぜバージョン管理が必要なのか
初心者が敬遠しがちなGit。
開発にハマるにつれ(二重の意味で)、バージョン管理は出来ておいたほうが良いです。
・競合を起こさないように
・本番環境を汚さないように
・万が一の際にバックアップから復元が取れるように
出来るからです。
これらは、ベターというより、エンジニアとしてはむしろマストなスキルです。
決してrather thanではなく、もはやshould, mustの域であるスキルと言ってよいでしょう。
なので、一人で開発やコーディングを練習する際からそういったバージョン管理に慣れ親しんでおくことで、多人数での開発時にスムーズにモノ作りが出来ます。
(逆に言えば、プログラミング(言語)スキルを持っていてもこの辺の管理スキルがなければ残念ながらチーム開発は難しいでしょう。
もう一度言います。Gitなど、バージョン管理は必須です。
今回は詳しい解説は割愛し、自分1人で開発を行う際に併せてバージョン管理の経験も積めるよう、その環境構築と使い方を説明していきます。
前提として、Gitのインストールまでは行っていてください。
下記記事にインストール手順をまとめてあります。
ローカルリポジトリの作成
とはいえ、概念を理解していれば操作自体は簡単です。
「作業用のフォルダを作成して、Gitリポジトリとして初期化するだけ」です。
プロンプトを立ち上げ、
$ cd ~/Desktop
デスクトップ上に、”git_local”というフォルダを作成します。
$ mkdir git_local
次はこの中に、管理するファイルを入れます。
ここでは既に利用しているていで main.py
という名前のファイルを使っていきます。
$ cd git_local
$ git init
と入力します。
git_localフォルダ内で.gitという隠しフォルダが生成されていたら成功です。
$dir * /b
>>> .git
ステージングエリアへadd
では main.py
の中身を適当に編集して、上書き保存を行います。
この差分をこれからコミットしていきます。
まず、下記のコマンドで対象ファイルをステージングエリアへ記録します。
$ git add main.py
複数ファイルを操りたい場合は、-allもしくは-Aオプションが使えます。
よく使うオプション引数なので覚えておきましょう。
次に、無事ステージングエリアへ記録されたか以下のコマンドで確認します。
$ git status
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: main.py
という風に表示されれば成功です。
反対に、addコマンドを使用せずに main2.py
を同ディレクトリに生成し、git status
で確認すると
Untracked files:
(use "git add <file>..." to include in what will be committed)
main2.py
main2.py の部分が赤字で表示されていることが確認できると思います。
これは、「コミット対象に含まれていないファイルが存在する」ことを示しています。
リポジトリへCommit
$ git commit -m "最初のコミット。オラァ!"
コミットの際には、-m
オプションを付けることを忘れないでください。
これは、何の変更をコミットしたか分かりやすくする為のメッセージオプションです。
その他のGit オプションについては、下記外部サイトに分かりやすくまとめてありますのでご覧ください。
はい、ということで上記の例じゃ20点ですね。
正しくは、
$ git commit -m "main.pyにオラァ!と追加。"
です。これでどういった変更がファイルに加えられたか分かりやすくなりました。は?
変更履歴を確認する
下記のコマンドで、変更履歴が一覧表示できます。
$ git log
Gitインストール時に設定したアカウント(Author)名、更新日時とメッセージ等が表示されます。
この際表示される、
commit f01213t1fsas9f29c2mv20v2n2x2md22jxfqwdkslcs
みたいな謎の文字列がありますが、これはコミットIDと呼ばれるものです。
この一意(ユニーク)なIDを使用して、前のバージョンに戻したりすることが出来ます。
ね、簡単でしょ?
これでローカルリポジトリでバージョンの管理が出来るようになりました。
こうして上書き保存でなく、都度add&commitするだけでバージョン管理を勝手にGitちゃんがこなしてくれるようになります。優秀すぎ。。
こういうツールは、日頃から成れておくのが肝心です。
使い慣れておけば、コミット時に予期せぬエラーが起きた場合もit感覚で○○がダメだったのか~と理解しやすくなります。
皆さんも日頃の開発で、積極的にGitを使っていきましょう!٩(๑❛ᴗ❛๑)