エンジニアの転職を支援するFEnetインフラのテックブログ。ネットワークなどのITインフラ情報を中心に発信中。

  1. FEnetインフラ
  2. FEnetテックマガジン
  3. テクノロジー
  4. git logとは?logコマンドの実行方法とそのオプション

git logとは?logコマンドの実行方法とそのオプション

  • テクノロジー
  • プログラミング
公開日時:   更新日時:
git logとは?logコマンドの実行方法とそのオプション
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    git logとは?


    今回はバージョン管理システムであるGitのコマンドのうちの一つであるgit logについて紹介していきます。

    git logとはなにか。git logコマンドの使い方、各オプションの使い方について説明していきます。

    環境の準備

    まずはGitコマンドを実行できる環境を準備します。Windowsを利用している方はgitbashを導入することを推奨します。
    https://gitforwindows.org/

    Mac、Linuxをお使いの方はターミナルで以下のコマンドを実行してください。

     

    git logとは何か

    git logとはコミット履歴を確認することのできるコマンドです。git logについて説明するにあたって、前提知識となるGitやコミットとは何か、順を追って説明していきます。

    Gitとは

    Gitとは分散バージョン管理システムであり、プログラムコードなどのテキストファイルの更新管理をするためのシステムです。作業PC(ローカル)とgithubやホスティングしているサーバ(リモート)の複数でコードを管理できます。

    コードを管理する場所が複数あるため、分散バージョン管理システムと呼ばれています。

    コードを管理する場所のことをリポジトリといいます。作業PC内のリポジトリのことをローカルリポジトリ、githubなどで保存されているリポジトリをリモートリポジトリと呼びます。

    コミットとは

    コミットとは、Gitに記録した変更の単位を指します。Gitでは、単にコードを書き換えたりファイルを追加しただけでは管理することができません。その後git commitコマンドによる登録が必要になります。git commitコマンドによる登録をコミットと呼んでいます。

    例えば、A.javaというコードのB関数を実装し終えてGitに登録するためにgit commitを実行したとします。その場合、B関数が実装されたバージョンがコミットという単位になります。

    コミットが持つ情報

    ここまでGitとコミットの概念について説明しました。それではコミットの実体はなんでしょうか。

    コミットには識別のためのハッシュ番号、Author(変更者)、Committer、コミット時のメッセージ、そしてファイルのblobが含まれています。

    ファイルのblobには変更された差分ではなく、管理しているファイルがそのまま含まれています。いわばスナップショットこそがコミットの実体になります。

    中身について深く知りたい方は、ローカルリポジトリにある.gitフォルダの中身をgit-catコマンドで閲覧してみてください。

    git logの使い道

    ここまでGitとは何か、コミットとは何かについて説明しました。冒頭で述べた通り、git logで得られる情報というのはコミット履歴になります。つまり、自分が作業した履歴を遡って閲覧することのできる機能といえます。

    git logコマンドの使い道としては、単に履歴を遡るだけではなく他のコマンドと併せて使う場面が多いです。

    具体的なユースケースとしては、作業中のファイルを特定のバージョンに戻したい場合などが挙げられます。特定のバージョンに戻すためにgit rebaseコマンドを用いますが、その際にgit logで得られるコミット番号が役に立ちます。

    それではgit logコマンドの使い方とオプションについて解説していきます。

    git logコマンドの使い方

    では実際にgit logコマンドを実行してみましょう。githubtrainingのサンプルを例にコマンドを紹介します。

    まずはリモートリポジトリからcloneをします。cloneが終わるとhellogitworldというディレクトリができます。この中にプログラムのコードなどのテキストファイルのほか、ローカルリポジトリが作成されます。

    hellogitworldディレクトリでgit logコマンドを実行するとこのようにコミット番号や実装者、コミットメッセージなどが表示されます。また、このインタラクティブモードはqを押すことで閉じられます。

     

    表示書式:git logコマンドのオプション

    先ほどはgit logコマンドの実行方法とその結果について紹介いたしました。続いてgit logコマンドのオプションをいくつか抜粋し、使いどころも併せて紹介していきます。

    git logコマンドのオプションは大きく分けて2種類で、表示書式の変更と表示対象のフィルタリングになります。それぞれ紹介していきます。

    表示書式:tree表示させたい

    次に紹介したいのは–onelineオプションと–graphオプションです。–graphオプションはどのタイミングで作業ブランチが分岐し、マージされたものなのかを見るのに最適です。

    –onelineオプションはコミット履歴の表示を簡略化し1行で表示させるものです。–graphオプションに併せて使用することで見やすくできます。

    通常のgit logと同様に上が最新で、下に行くほど古いコミットになります。アスタリスクから続く1行はコミットを指し、スラッシュがマージ、バックスラッシュがブランチ作成による分岐を指しています。

    表示書式:変更箇所も併せて表示する

    あるコードがどの時期から変更されたかをコミット履歴から探りたいような場合に-pオプションが有効です。このオプションはgit logコマンドで得られるコミット履歴に加えて、変更ファイル名と変更箇所を表示できます。

     

    表示対象:n件だけ表示させたい

    オプション無しのgit logコマンドは全件表示されます。閲覧したいコミット履歴を絞りたい場合は-nオプションを使うことで最新n件のみ表示させることが可能です。

    変更した時期に当たりがついている場合は、–since、–afterオプションが有効です。以下のように日付を指定することで、その区間のコミットに絞って表示できます。

     

    表示対象:特定イベントのみに限定する

    すべてのコミットではなく、特定の作業に絞りたい場合のオプションを紹介します。

    –mergesオプションはマージが実行されたコミットに絞って表示できます。逆にマージコミットのみを除外する–no-mergesというオプションも存在します。

    以下のように組み合わせると直近のマージで変更されたファイルを確認できます。

     

    git logコマンドを開発で活用しよう

    今回はgit logコマンドについて紹介いたしました。

    まず1点目はgit logコマンドを紹介するにあたって必要なGitやコミットの概念について解説いたしました。2点目にgit logコマンドの実行で得られる情報について説明しました。最後にgit logコマンドのオプションと使いどころについて紹介しました。

    git logコマンドを業務や個人開発に活用してみてください。

    FEnetを運営しているネプラス株式会社はサービス開始から10年以上
    『エンジニアの生涯価値の向上』をミッションに掲げ、
    多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
    ネプラス株式会社ロゴ

    ネプラス株式会社はこんな会社です

    秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • インフラ業界に特化

      インフラ業界に特化

      ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。

      業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。

    • 正社員なのにフリーランスのような働き方

      正社員なのにフリーランスのような働き方

      正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。

      プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。

    • 大手直取引の高額案件

      大手直取引の高額案件

      案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。

      Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。

    • スキルアップ支援

      スキルアップ支援

      不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。

      受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など

      ※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。

    • 現給与を保証します!

      100%現給与保証

      前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。

      ※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。

    • インセンティブ制度

      インセンティブ制度

      ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。

      取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。

    • 社会保険・福利厚生

      社会保険・福利厚生

      社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。

      さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    ネプラス株式会社に興味を持った方へ

    ネプラス株式会社では、インフラエンジニアを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    ネプラス株式会社へのご応募はこちら↓
    ネプラス株式会社へのご応募はこちら↓

    新着案件New Job