個人でGit Bashを利用してローカル上で基本的なバージョン管理を行う方法

ローカルでバージョン管理を行う流れ

前回は、ファイルのコミットについて説明しました。

今回は、Git Bashを利用して個人でバージョン管理を行う方法を説明します。

個人でローカル上でバージョン管理を行う流れは、とてもシンプルで以下のような流れでバージョン管理をします。

  1. 管理したいフォルダを決めます。これが作業ディレクトリになります。
  2. 作業ディレクトリのリポジトリを作ります。ここで、新たにGitというディレクトリが作成されます。
  3. 作業ディレクトリにファイルを作成します。
  4. ファイルを更新します。
  5. ファイルをコミット対象ファイルとしてステージングします。
  6. ファイルをコミットします。
  7. ファイルの新規・更新がある場合⑤~⑥を繰り返します。

ローカルでファイルのバージョン管理をしよう

  1. バージョンを管理したいフォルダを作成します。ここでは、「sample」フォルダを作成します。
    sampleフォルダを作成した画面
  2. 「sample」フォルダをクリックし、「sample」フォルダに入ります。
    sampleフォルダに入った画面
  3. Git Bashを起動して「sample」フォルダに行き、「sample」フォルダを新規のリポジトリとして「git init」コマンドを実行して作成します。
    「Initialized empty Git repository in C:/Users/****/Documents/Git/sample/.git/」というメッセージが表示されれば、リポジトリの作成は成功です。
    「sample」フォルダを新規のリポジトリとして作成する画面
    リポジトリの作成が成功した場合、エクスプローラーの「sample」フォルダに「.git」という隠しフォルダが作成されます。
    エクスプローラーの「sample」フォルダに「.git」という隠しフォルダが作成された画面
  4. 「sample」フォルダに、「hello.py」というファイルを新規に作成します。
    hello.py」というファイルを新規に作成した画面
  5. hello.pyに、「print(“Hello Python.”)」を追加して保存します。
    ファイルをVS Codeで更新した画面
  6. 更新したファイルの状況を、「git status」コマンドで確認してみます。
    [Changes not staged for commit.]というメッセージが出ています。これは、ファイルは変更されているが、変更点をコミットするためにステージングをしていないという意味です。
    変更点がコミットするためにステージングされていないという画面
  7. gitリポジトリにコミットできるよう情報を記録するステージングエリアに「hello.py」を追加するため、「git add hello.py」コマンドを実行してステージングします。
    「git add hello.py」コマンドを実行した画面実行後、「git status」コマンドで確認すると、ファイルが追加「new file : hello.py」されたことが確認できます。
    git statusでファイルが追加されたことを確認する画面
  8. hello.pyをコミットするために、「git commit -m “バージョン 1.0″」とコマンドを入力します。
    すると、コミットが成功しましたというメッセージを出ます。これで、ファイルの変更履歴が保存されたことになります。
    ファイルをコミットした画面コミット後、「git status」をコマンド入力すると、以下のようにコミットするファイルがないというメッセージが出ています。
    コミット後、コミットするファイルがないというメッセージ画面
  9. コミット状況の履歴を知るには、「git log」をコマンド入力します。
    ここでは、今までのコミット状況の履歴が表示されますので、今までどんなコミットをしたのかを知るのに便利です。
    コミット履歴を表示した画面
  10. さらに、コミットの内容も知りたい場合は、「git log -p」をコマンドすることで、コミットの履歴を知ることができます。
    コミットの履歴を表示している画面

ファイルの新規や更新がある場合は、新規や更新の区切りがついたときに、コミット対象ファイルとしてステージング(⑦)し、コミット(⑧)を繰り返します。

 

以上が、基本的なバージョン管理となります。

バージョン管理で操作ミスなどが有ったときはどうする?

バージョン管理をしているときに、コミットしないほうが良かったり、コミット対象にしなければよかったと思うことがありますよね。

そのために、バージョン管理を戻す方法があります。戻す方法をいくつかピックアップします。

直前のコミットを修正したい

コミットをした後に、簡単な修正が入り、直前のコミットに入れたいケースがあります。この場合、「git commit –amend -m “バージョン1.0″とコマンドを入力することで、コミットの上書きみたいな感じにすることができます。

その方法を今から説明します。

  1. hello.pyの履歴を確認するため、「git log -p」のコマンドを入力して、現在の履歴を確認します。赤い丸四角形の箇所は、ピリオドになっています。
    現在のログの状況の確認画面
  2. hello.pyを修正して保存します。今回は、ピリオドをびっくりマークに変更しています。
    hello.pyを修正して保存した画面
  3. gitリポジトリにコミットできるよう情報を記録するステージングエリアに「hello.py」を追加するため、「git add hello.py」コマンドを実行してステージングします。
    「git add hello.py」コマンドを実行した画面
  4. hello.pyを上書きコミットするために、は「–amend」オプションを追加するだけです。ここでは、「git commit –amend -m “バージョン 1.0″」とコマンドを入力します。
    すると、コミットが成功しましたというメッセージを出ます。これで、ファイルの変更履歴が上書き保存されました。
    --amendオプションでコミットした場合の画面
  5. 再び、hello.pyの履歴を確認するため、「git log -p」のコマンドを入力して、現在の履歴を確認します。赤い丸四角形の箇所は、びっくりマークに変わっています。
    --amendでコミットした場合のログ履歴画面

コミットを取り消したい

コミットした後、もう少し変更してからコミットすればよかったと思うことがあります。この場合、コミットしている履歴をなかったことにすることが可能です。

その方法を今から説明します。

  1. コミットの履歴を確認するため、「git log」のコマンドを入力して、現在の履歴を確認します。
    現在のコミット履歴を確認する画面
  2. コミットをなかったことにするため、「git revert HEAD」のコマンドを入力します。ここでは、コミットが1つしかないためファイルが削除されました。
    「git revert HEAD」のコマンドを入力した画面
    フォルダを見ても、hello.pyがなくなっています。
    エクスプローラーの「sample」フォルダに「.git」という隠しフォルダが作成された画面
  3. コミットの履歴を確認するため、「git log」のコマンドを入力して、現在の履歴を確認します。ここでも、Revertメッセージが表示されていますので、コミットを取り消すことができています。
    コミットを取り消した後のログ履歴画面

コミットを取り消したけど、復活したい

取り消したコミットを戻したい場合は、直前で説明した「コミットを取り消したい」と同様のコマンドを使うと戻せます。

その方法を今から説明します。

  1. コミットの履歴を確認するため、「git log」のコマンドを入力して、現在の履歴を確認します。直前のコミットは、赤四角枠です。
    直前のコミット履歴を表示した画面
  2. 取り消したコミットを復活させるためには、コミットを取り消したいと同じ「git revert HEAD」のコマンドを入力します。ここでは、削除されたファイルが復活しています。
    取り消したコミットを復活するためにrevertした画面
  3. コミットの履歴を確認するため、「git log」のコマンドを入力して、現在の履歴を確認します。ここでは、Revertメッセージが表示されていますので、取り消したコミットを復活することができています。
    revertでコミットが復活した履歴が出ている画面フォルダにhello.pyが復活しています。
    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に慣れていきましょう。

次回は、リリースした後に変更があった場合、リリースの影響を受けることなく履歴を更新できるブランチの扱い方について説明する予定です。