Gitを使いこなそう!基本からgit log、git showコマンドまで徹底解説

プログラム

バージョン管理システムGitは、現代のソフトウェア開発において必要不可欠なツールです。チームでの開発はもちろん、個人開発でもGitを使うことで、コードの変更履歴を管理し、過去のバージョンに戻したり、共同作業をスムーズに行ったりすることができます。

この記事では、Gitの基本的な概念から、変更履歴を確認するためのgit logコマンド、特定のコミットの詳細を表示するgit showコマンドまで、丁寧に解説していきます。Git初心者の方でも理解しやすいように、図解や例を交えながら説明していきますので、ぜひ最後まで読んでGitマスターを目指しましょう!

Gitとは?

Gitは、分散型バージョン管理システム (DVCS) です。 ファイルの変更履歴を記録することで、過去の状態に戻したり、複数人で共同作業したりすることを可能にします。

従来のバージョン管理システムの多くは、中央サーバーにすべての変更履歴を保存する集中型でした。しかし、集中型には、サーバーが単一障害点となるリスクや、オフラインでの作業ができないなどのデメリットがありました。 一方で、Gitのような分散型バージョン管理システムも、Git以前から存在していました。 Gitは、各開発者がリポジトリと呼ばれる変更履歴の完全なコピーをローカルに持つため、サーバーに接続していなくても作業できます。

Gitは、Linuxカーネルの開発のためにLinus Torvalds氏によって2005年に作成されました。 当初はLinuxカーネルのソースコード管理を目的としていましたが、現在では、ソフトウェア開発だけでなく、Webサイトの構築、ドキュメント作成、音楽制作など、あらゆる種類のファイルのバージョン管理に利用されています。 これは、Gitが95%近くの開発者によって主要なバージョン管理システムとして使用されているほど、最も人気のある分散型バージョン管理システムであるためです。

Gitのメリット

Gitには、以下のようなメリットがあります。

  • 高速な処理速度: ローカルにリポジトリを持つため、変更履歴の参照やコミットなどの操作が高速に行えます。
  • 柔軟なブランチ操作: ブランチと呼ばれる独立した開発ラインを簡単に作成・マージできます。
  • 分散型アーキテクチャ: 中央サーバーに依存しないため、単一障害点のリスクが低く、オフラインでも作業できます。
  • オープンソース: 無料で利用でき、多くの開発者に支持されています。

Gitの構成要素

Gitを理解する上で重要な構成要素を4つ紹介します。

  • 作業ディレクトリ: ファイルを編集する場所です。
  • ステージングエリア: コミットする前に変更を準備する場所です。インデックスとも呼ばれます。
  • ローカルリポジトリ: プロジェクトの変更履歴がコンピュータに保存されている場所です。
  • リモートリポジトリ: インターネットまたはネットワーク上にホストされているプロジェクトのバージョンです。複数の人が共同作業できるように、この共有リソースにプッシュしたり、プルしたりすることができます。

Gitの基本的な使い方

Gitの基本的な使い方を、以下のステップで解説します。

  1. リポジトリの作成: git initコマンドで、カレントディレクトリをGitリポジトリとして初期化します。Bashgit init このコマンドを実行すると、.gitという隠しディレクトリが作成され、Gitリポジトリとして初期化されます。
  2. ファイルのステージング: git add <file>コマンドで、変更したファイルをステージングエリアに追加します。ステージングエリアは、次にコミットする変更を一時的に保存する場所です。Bashgit add index.html git add style.css 上記のように、git addコマンドの後にファイル名を指定することで、ファイルをステージングエリアに追加できます。
  3. コミット: git commit -m "コミットメッセージ"コマンドで、ステージングエリアに追加された変更をリポジトリにコミットします。コミットメッセージには、変更内容を簡潔に記述します。Bashgit commit -m "feat: ヘッダーのデザインを変更" コミットメッセージは、後から変更内容を確認する際に役立ちますので、わかりやすく記述するように心がけましょう。
  4. 変更履歴の確認: git logコマンドで、コミットの履歴を確認します。 (git logコマンドの詳細は後述します。)
  5. ブランチの作成: git branch <branch_name>コマンドで、新しいブランチを作成します。ブランチは、メインの開発ラインから分岐して、別の機能を開発したり、バグを修正したりする際に使用します。Bashgit branch feature/new-design ブランチ名は、わかりやすいように、機能名や修正内容などを含めるようにしましょう。
  6. ブランチの切り替え: git checkout <branch_name>コマンドで、ブランチを切り替えます。Bashgit checkout feature/new-design ブランチを切り替えることで、作業ディレクトリの内容が、切り替えたブランチの状態になります。
  7. ブランチのマージ: git merge <branch_name>コマンドで、指定したブランチを現在のブランチにマージします。Bashgit checkout main git merge feature/new-design 上記のように、まずマージ先のブランチに切り替えてから、git mergeコマンドでマージしたいブランチを指定します。

git logコマンドの使い方

git logコマンドは、コミットの履歴を表示するためのコマンドです。コミットハッシュ、作者、日付、コミットメッセージなど、各コミットの詳細情報を確認できます。 Gitのログを効果的に使用することで、コードベースの進化を理解し、誰が何を貢献したのか、いつどのような変更が行われたのかを特定することができます。 また、高度なgit log機能を使用することで、プロジェクト履歴内の必要な情報を見つけることができます。

基本的な使い方

Bash

git log

上記のコマンドを実行すると、リポジトリのすべてのコミット履歴が時系列の逆順で表示されます。

オプション

git logコマンドには、様々なオプションがあります。ここでは、よく使うオプションをいくつか紹介します。

OptionDescriptionExample
-p各コミットの変更内容をパッチ形式で表示しますgit log -p
--oneline各コミットを1行で表示しますgit log --oneline
--graphブランチの構造をグラフで表示しますgit log --graph
--author=<author>指定した作者のコミットのみを表示しますgit log --author="John Doe"
--since=<date>指定した日付以降のコミットのみを表示しますgit log --since="2023-01-01"
--until=<date>指定した日付以前のコミットのみを表示しますgit log --until="2023-12-31"
--grep=<pattern>コミットメッセージに指定したパターンを含むコミットのみを表示しますgit log --grep="fix"
| grep <pattern>コミットメッセージに指定したメッセージを含むコミットを表示しますgit log | grep “fix
-1最新のコミットのみを表示しますgit log -1
--decorate各コミットに関連付けられているブランチやタグを表示しますgit log --decorate
--stat各コミットで変更されたファイルの統計情報を表示しますgit log --stat

git log の出力が表示され続けている状態から抜け出すには主に下記の方法があります。

  1. Ctrl + C を押す:
    これが最も一般的な方法です。Ctrl + C は、現在実行中のプロセスを強制的に中断させるシグナルを送ります。ほとんどの場合、これで git log の表示が止まり、コマンドプロンプトに戻ることができます。
  2. q キーを押す (less が使われている場合):
    git log の出力が長い場合、Git は自動的に less というページャー(テキストをスクロールして表示するツール)を使用することがあります。less が起動している場合、画面の下部に : や (END) のような表示が見えることがあります。この場合は、q キーを押すと less が終了し、コマンドプロンプトに戻ります。
  3. 別のターミナル/ウィンドウを閉じる (最終手段):

上記の方法でうまくいかない場合、または誤って他のコマンドを実行してしまった場合など、どうしても抜け出せない場合は、現在作業中のターミナルウィンドウやタブを閉じて、新しいターミナルを開き直すという方法もあります。ただし、これは最終手段であり、未保存の作業がある場合は失われる可能性があることに注意してください。

ほとんどの場合、Ctrl + C または q キーで問題なく抜け出せるはずです。 もしlessが起動しているかどうかわからない場合、とりあえずqを押してみて、反応がなければCtrl+Cを試す、という順番で試すと良いでしょう。

実用例

  • 過去のコミット内容を確認する

<!– end list –>

Bash

git log -p
  • 特定の作者のコミット履歴を確認する

<!– end list –>

Bash

git log --author="John Doe"
  • 特定の期間のコミット履歴を確認する

<!– end list –>

Bash

git log --since="2023-01-01" --until="2023-12-31"
  • 最新のコミットを表示する

<!– end list –>

Bash

git log -1
  • ブランチの構造をグラフで表示する

<!– end list –>

Bash

git log --graph --oneline --all

11

git showコマンドの使い方

git showコマンドは、特定のコミットの詳細を表示するためのコマンドです。コミットハッシュ、作者、日付、コミットメッセージに加えて、変更内容をdiff形式で表示します。

基本的な使い方

Bash

git show <commit-hash>

<commit-hash>には、表示したいコミットのハッシュ値を指定します。

オプション

git showコマンドにも、いくつかのオプションがあります。

OptionDescriptionExample
-p変更内容をパッチ形式で表示しますgit show -p a1b2c3d
--stat変更されたファイルの統計情報を表示しますgit show --stat a1b2c3d
--pretty=<format>表示形式を指定しますgit show --pretty=oneline a1b2c3d

実用例

  • 特定のコミットの詳細を確認する

<!– end list –>

Bash

git show a1b2c3d
  • 特定のコミットの変更内容をパッチ形式で確認する

<!– end list –>

Bash

git show -p a1b2c3d
  • 最新のコミットを表示する

<!– end list –>

Bash

git show HEAD

12

  • タグで指定したコミットを表示する

<!– end list –>

Bash

git show v1.0

14

GitとGitHub

GitとGitHubは、どちらもソフトウェア開発でよく使われる用語ですが、それぞれ異なるものを指します。

Gitは、上で説明した通り、バージョン管理システムです。ファイルの変更履歴を管理するためのツールです。

GitHubは、GitリポジトリをホスティングするWebサービスです。 GitHubを使うことで、Gitリポジトリをオンラインに保存し、他の開発者と共有したり、共同作業したりすることができます。

GitはGitHubのようなサービスを利用しなくても使用できますが、GitHubを使うことで、より便利にGitを利用することができます。

Gitのよくあるエラーと対処法

Gitを使っていると、予期せぬエラーに遭遇することがあります。よくあるGitのエラーと対処法を理解しておくことは、効率的な開発のために不可欠です。 ここでは、よくあるエラーと対処法をいくつか紹介します。

  • Merge conflict: 異なるブランチで同じファイルの同じ箇所を編集した場合に発生するエラーです。コンフリクトが発生した箇所を手動で修正し、git addコマンドでステージングエリアに追加した後、git commitコマンドでコミットします。
  • Detached HEAD: HEADがブランチではなく特定のコミットを指している状態です。git checkout <branch_name>コマンドでブランチに切り替えることで解決できます。
  • “non-fast-forward” error: ローカルリポジトリがリモートリポジトリよりも古い場合に、プッシュ時に発生するエラーです。git pullコマンドでリモートリポジトリの変更を取得してから、再度プッシュします。
  • ファイルの誤削除: Gitでファイルを誤って削除してしまうことはよくあるミスです。git checkout <file>コマンドで、削除したファイルを復元できます。
  • 未完成のコードのプッシュ: 慌てて作業をしていると、未完成のコードをプッシュしてしまうことがあります。git revertコマンドで、プッシュしたコミットを取り消すことができます。
  • 不適切なコミットメッセージ: わかりにくいコミットメッセージを書いてしまうと、後から変更内容を確認するのが難しくなります。git commit --amendコマンドで、コミットメッセージを修正することができます。

Gitの応用

Gitには、ここで紹介した以外にも様々な機能があります。

  • ブランチ戦略: Gitflow WorkflowやGitHub Flowなど、プロジェクトの規模や特性に合わせて適切なブランチ戦略を採用することで、開発を効率化できます。
    • Gitflow Workflow: メインブランチ、開発ブランチ、機能ブランチ、リリースブランチ、ホットフィックスブランチなど、複数のブランチを定義し、それぞれのブランチに役割を持たせることで、開発プロセスを管理するワークフローです。
    • GitHub Flow: メインブランチと機能ブランチのみを使用するシンプルなワークフローです。機能ブランチで開発を行い、完成したらメインブランチにマージします。
  • .gitignoreファイル: .gitignoreファイルにファイルやディレクトリを指定することで、Gitの管理対象から除外できます。 例えば、OSが自動生成する一時ファイルや、個人設定ファイルなどをGitの管理対象から除外することができます。
  • Git Hooks: コミットやプッシュなどのイベントにフックして、自動的にスクリプトを実行できます。 例えば、コミット前にコードの静的解析を実行したり、プッシュ後に自動的にデプロイを実行したりすることができます。

まとめ

この記事では、Gitの基本的な概念から、git logコマンド、git showコマンドの使い方、応用、よくあるエラーと対処法まで解説しました。Gitは、現代のソフトウェア開発において必須のツールです。この記事を参考に、Gitをマスターして、開発効率を向上させましょう。

さらにGitについて深く学びたい方は、以下のリソースも参考にしてください。

Gitを使いこなして、快適な開発ライフを送りましょう!

たび友|サイトマップ

関連webアプリ

たび友|サイトマップ:https://tabui-tomo.com/sitemap

たび友:https://tabui-tomo.com

けん友:https://kentomo.tabui-tomo.com

ピー友:https://pdftomo.tabui-tomo.com

パス友:https://passtomo.tabui-tomo.com

クリプ友:https://cryptomo.tabui-tomo.com

タイトルとURLをコピーしました
たび友 ぴー友
クリプ友 パス友
サイトマップ お問い合わせ
©2025 たび友