ローカルでバージョン管理を行う流れ
前回は、ファイルのコミットについて説明しました。
今回は、Git Bashを利用して個人でバージョン管理を行う方法を説明します。
個人でローカル上でバージョン管理を行う流れは、とてもシンプルで以下のような流れでバージョン管理をします。
- 管理したいフォルダを決めます。これが作業ディレクトリになります。
- 作業ディレクトリのリポジトリを作ります。ここで、新たにGitというディレクトリが作成されます。
- 作業ディレクトリにファイルを作成します。
- ファイルを更新します。
- ファイルをコミット対象ファイルとしてステージングします。
- ファイルをコミットします。
- ファイルの新規・更新がある場合⑤~⑥を繰り返します。
ローカルでファイルのバージョン管理をしよう
- バージョンを管理したいフォルダを作成します。ここでは、「sample」フォルダを作成します。
- 「sample」フォルダをクリックし、「sample」フォルダに入ります。
- Git Bashを起動して「sample」フォルダに行き、「sample」フォルダを新規のリポジトリとして「git init」コマンドを実行して作成します。
「Initialized empty Git repository in C:/Users/****/Documents/Git/sample/.git/」というメッセージが表示されれば、リポジトリの作成は成功です。
リポジトリの作成が成功した場合、エクスプローラーの「sample」フォルダに「.git」という隠しフォルダが作成されます。
- 「sample」フォルダに、「hello.py」というファイルを新規に作成します。
- hello.pyに、「print(“Hello Python.”)」を追加して保存します。
- 更新したファイルの状況を、「git status」コマンドで確認してみます。
[Changes not staged for commit.]というメッセージが出ています。これは、ファイルは変更されているが、変更点をコミットするためにステージングをしていないという意味です。
- gitリポジトリにコミットできるよう情報を記録するステージングエリアに「hello.py」を追加するため、「git add hello.py」コマンドを実行してステージングします。
実行後、「git status」コマンドで確認すると、ファイルが追加「new file : hello.py」されたことが確認できます。
- hello.pyをコミットするために、「git commit -m “バージョン 1.0″」とコマンドを入力します。
すると、コミットが成功しましたというメッセージを出ます。これで、ファイルの変更履歴が保存されたことになります。
コミット後、「git status」をコマンド入力すると、以下のようにコミットするファイルがないというメッセージが出ています。
- コミット状況の履歴を知るには、「git log」をコマンド入力します。
ここでは、今までのコミット状況の履歴が表示されますので、今までどんなコミットをしたのかを知るのに便利です。
- さらに、コミットの内容も知りたい場合は、「git log -p」をコマンドすることで、コミットの履歴を知ることができます。
ファイルの新規や更新がある場合は、新規や更新の区切りがついたときに、コミット対象ファイルとしてステージング(⑦)し、コミット(⑧)を繰り返します。
以上が、基本的なバージョン管理となります。
バージョン管理で操作ミスなどが有ったときはどうする?
バージョン管理をしているときに、コミットしないほうが良かったり、コミット対象にしなければよかったと思うことがありますよね。
そのために、バージョン管理を戻す方法があります。戻す方法をいくつかピックアップします。
直前のコミットを修正したい
コミットをした後に、簡単な修正が入り、直前のコミットに入れたいケースがあります。この場合、「git commit –amend -m “バージョン1.0″とコマンドを入力することで、コミットの上書きみたいな感じにすることができます。
その方法を今から説明します。
- hello.pyの履歴を確認するため、「git log -p」のコマンドを入力して、現在の履歴を確認します。赤い丸四角形の箇所は、ピリオドになっています。
- hello.pyを修正して保存します。今回は、ピリオドをびっくりマークに変更しています。
- gitリポジトリにコミットできるよう情報を記録するステージングエリアに「hello.py」を追加するため、「git add hello.py」コマンドを実行してステージングします。
- hello.pyを上書きコミットするために、は「–amend」オプションを追加するだけです。ここでは、「git commit –amend -m “バージョン 1.0″」とコマンドを入力します。
すると、コミットが成功しましたというメッセージを出ます。これで、ファイルの変更履歴が上書き保存されました。
- 再び、hello.pyの履歴を確認するため、「git log -p」のコマンドを入力して、現在の履歴を確認します。赤い丸四角形の箇所は、びっくりマークに変わっています。
コミットを取り消したい
コミットした後、もう少し変更してからコミットすればよかったと思うことがあります。この場合、コミットしている履歴をなかったことにすることが可能です。
その方法を今から説明します。
- コミットの履歴を確認するため、「git log」のコマンドを入力して、現在の履歴を確認します。
- コミットをなかったことにするため、「git revert HEAD」のコマンドを入力します。ここでは、コミットが1つしかないためファイルが削除されました。
フォルダを見ても、hello.pyがなくなっています。
- コミットの履歴を確認するため、「git log」のコマンドを入力して、現在の履歴を確認します。ここでも、Revertメッセージが表示されていますので、コミットを取り消すことができています。
コミットを取り消したけど、復活したい
取り消したコミットを戻したい場合は、直前で説明した「コミットを取り消したい」と同様のコマンドを使うと戻せます。
その方法を今から説明します。
- コミットの履歴を確認するため、「git log」のコマンドを入力して、現在の履歴を確認します。直前のコミットは、赤四角枠です。
- 取り消したコミットを復活させるためには、コミットを取り消したいと同じ「git revert HEAD」のコマンドを入力します。ここでは、削除されたファイルが復活しています。
- コミットの履歴を確認するため、「git log」のコマンドを入力して、現在の履歴を確認します。ここでは、Revertメッセージが表示されていますので、取り消したコミットを復活することができています。
フォルダにhello.pyが復活しています。
バージョン管理で利用したコマンドのまとめ
今回のバージョン管理で利用したコマンドは以下です。
コマンド | 意味 |
git init | Gitリポジトリを作成します。初回時に、バージョン管理を行いたいフォルダで実行します。
実行すると、.Gitという隠しディレクトリが作成され、Gitのバージョン管理は、.Gitディレクトリで行われます。 |
git status | Gitの現在のステータスを表示します。ここで、ファイルの状態やコミットの有無の状況が把握できます。 |
git add ファイル名 | ファイルをステージングエリアに追加します。ステージエリアに持っていくと、いつでもコミットができる状態になります。 |
git commit -m “説明” | コミットすることで、ステージエリアに追加したファイルの履歴をGitリポジトリに保存します。 |
git log | 今までコミットした内容を履歴として表示するため、どのようにコミットしたかが把握できます。 |
git log -p | 今までコミットした内容の更新履歴をファイルレベルで表示するため、ファイルの中身の変更履歴が把握できます。 |
git commit –amend -m “コミットの説明” | 直前のコミットを上書きします。 |
git revert HEAD | 直前のコミットを取り消します。
取り消したコミットを復活させることもできます。 |
少しづつ、Gitに慣れていきましょう。
次回は、リリースした後に変更があった場合、リリースの影響を受けることなく履歴を更新できるブランチの扱い方について説明する予定です。