宝くじ とはk8 カジノ【 git show 】コマンド(応用編)――コミット単位でログや差分、ファイルを表示する仮想通貨カジノパチンコパチスロ net

宝くじ とはk8 カジノ【 git show 】コマンド(応用編)――コミット単位でログや差分、ファイルを表示する仮想通貨カジノパチンコパチスロ net

宝くじ とはk8 カジノ【 git show 】コマンド(応用編)――コミット単位でログや差分、ファイルを表示する仮想通貨カジノパチンコパチスロ net

初心者 米国 株k8 カジノ 「Linux基本コマンドTips」のインデックス

キコーナ 千林Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、基礎編に続いて、Gitについてコミット単位でログや差分、ファイルを表示する「git show」コマンドの応用編です。

目次

git showコマンドの概要 | 書式| オプション一覧

実行例特定のコミット時点でのファイルを表示する変更前の内容を表示する、タグで検索するgit/git showコマンドとは?

 「git」は「Git」という分散型バージョン管理システム用のコマンドです。Gitは元々Linuxカーネルのソースコードを管理するために作られた「バージョン管理システム」で、現在は多くのソフトウェアやWebサイトのソースコード、ドキュメントの管理などに用いられています。

 ソースコードを管理する際、最新版だけを保存するやり方はうまくいきません。開発中のさまざまなタイミングで状態を管理し、必要に応じて比較、参照したり、元に戻したりできるようにする仕組みが「バージョン管理システム」です。

 Gitでは、テスト版など複数に枝分かれした状態も管理できます。複数のメンバーによる開発を前提としており、開発中の各時点におけるコメントや、コメントへの返信なども管理できるようになっています。

gitのサブコマンドとGitの仕組み

 gitコマンドはほとんどの場合、「サブコマンド」と組み合わせて利用します。今回紹介する「git show」はコミット単位でログや差分、ファイルを表示するコマンドです(本連載ではgitとサブコマンドの組み合わせをコマンドとして紹介します)。

 gitコマンドが扱う「リポジトリ(repository)」とは、ソースコードや変更履歴、コメントなどを一括して保管する場所です。リポジトリには、自分のPC上に作る「ローカルリポジトリ」と、「GitHub」などのWebサービス上に作る「リモートリポジトリ」があり、両者を連携させることで複数の開発者による開発を1本にまとめることができます。

 既存のリポジトリ(リモートリポジトリ)にあるソースコードなどを入手したい場合は、まず、「git clone」(連載第381回)でリポジトリを自分の環境に複製します(※1)。リモートリポジトリの内容がバージョンアップされたら「git pull」(連載第382回)コマンドで最新版を取得します。開発に参加するのではなく、単に最新版を取得したいという場合は、「git clone」と「git pull」を利用すればよいでしょう。

※1 特定のファイルだけが欲しい場合、例えばGitHub(github.com)にあるリポジトリであれば「Raw」というボタンで表示されるURLを使い、「wget」コマンドなどを使ってダウンロードできる。この他、プロジェクト全体をダウンロードするためのリンクも用意されている([Clone or download]ボタン→「Download ZIP」)。

 保管場所であるリポジトリに対し、ファイルの編集などを行う場所を「ワークツリー」あるいは「ワーキングエリア」などと呼びます。「git clone」や「git pull」で取得した最新版のファイルはワークツリーに配置されます。つまり「作業ディレクトリ」です。

 ワークツリー(作業ディレクトリ)で編集した結果をリポジトリに反映する操作を「コミット」と呼びます。「git add」(連載第384回)コマンドでコミットしたいファイルを「インデックス」あるいは「ステージングエリア」と呼ばれる領域に追加します。インデックスにはファイルの変更箇所などが記録されます。

 インデックスの内容は「git commit」コマンドでローカルリポジトリにコミットされ、「git push」コマンドでローカルリポジトリの内容をリモートリポジトリに反映します。従って、「git add」や「git commit」などを行わなければ、自分の環境で編集した内容がリポジトリに影響を与えることはありません。自由に編集し、テストできます。なお、ワークツリーのファイルを過去の任意のコミット状態に戻すことも可能です。

 Gitには、この他、開発中のソースコードやドキュメントを、「テスト版」「○○版」……のように枝分かれさせたり、それらを合流させたりする機能もあります。枝分かれしたそれぞれのバージョンを「ブランチ」(branch)と呼び、ブランチを合流させることを「マージ」(merge)と呼びます。

目次に戻る

コマンドの書式

git [オプション] サブコマンド [サブコマンドごとのオプションや引数]

git show [オプション] [対象……]

※ 「対象」にはファイル名やブランチ、タグ、コミットのハッシュ値などが指定可能。[ ]は省略可能な引数を示しています。

目次に戻る

gitの主なオプション

短いオプション長いオプション意味-C パスカレントディレクトリではなく指定したディレクトリで実行したものとする–bareリポジトリを「bareリポジトリ」(ワーキングディレクトリが存在しない、管理だけを目的としたリポジトリ)として扱う-c 設定=値設定値を指定する(設定は「git config」で確認可能)-p–paginate全ての出力を「less」コマンドまたは環境変数PAGERで指定されたコマンドで表示する-P–no-pager「less」コマンドで表示しない(「-p」の指定を打ち消す)–exec-path=パスgitの実行ファイルのパスを指定する(「–exec-path」のみの場合、実行ファイルのパスを表示する)–html-pathgitのHTML形式のドキュメントがインストールされたパスを表示する–man-pathgitのmanファイルのパスを表示する–info-pathgitのinfoファイルのパスを表示する

gitのサブコマンド

コマンド実行内容cloneリポジトリのクローンを作成するinitリポジトリを新規作成する、または既存のリポジトリを初期化するremoteリモートリポジトリを関連付けするfetchリモートリポジトリの内容を取得するpullリモートリポジトリの内容を取得し、現在のブランチに取り込む(「fetch」と「merge」を行う)pushローカルリポジトリの変更内容をリモートリポジトリに送信するaddファイルをインデックスに追加する(コミットの対象にする)rmファイルをインデックスから削除するmvファイルやディレクトリの名前を変更するresetファイルをインデックスから削除し、特定のコミットの状態まで戻すstatusワークツリーにあるファイルの状態を表示するshowファイルの内容やコミットの差分などを表示するdiffコミット同士やコミットと作業ツリーの内容を比較するcommitインデックスに追加した変更をリポジトリに記録するtagコミットにタグを付ける、削除する、一覧表示するlogコミット時のログを表示するgrepリポジトリで管理されているファイルをパターン検索するbranchブランチを作成、削除、一覧表示するcheckout作業ツリーを異なるブランチに切り替えるmerge他のブランチやコミットの内容を現在のブランチに取り込むrebaseコミットを再適用する(ブランチの分岐点を変更したり、コミットの順番を入れ替えたりできる)config現在の設定を取得、変更する

git showの主なオプション

長いオプション意味–pretty表示フォーマットを「oneline」「short」「medium」(デフォルト)、「full」「fuller」で指定する。「–pretty=format:」で書式を指定することも可能(連載第388回参照)–abbrev-commitコミットのハッシュ値を、特定できる範囲の省略形(デフォルトは先頭7バイト分)で表示する–no-abbrevMerge行にあるコミットのハッシュ値を全て表示する(40バイト)–abbrev=バイト数指定したバイト数分だけ、Merge行にコミットのハッシュ値を表示する–oneline各コミットを1行で簡潔に表示する(「–pretty=oneline –abbrev-commit」相当)–notesノート(コミット時のメッセージとは別に、「git notes」で別途残すことができるメモ、「.git/refs/notes」に保存されている)を表示する。「–notes=」オプションで対象を指定することも可能–no-notesノートを表示しない

目次に戻る

特定のコミット時点でのファイルを表示する

 特定のコミット時点でのファイルの内容を表示するには、「git show ハッシュ値:パス名」や「git show タグ:パス名」のように指定します。

 パス名の部分は、現在のワークツリーにあるファイルと同じように指定します。例えば、「README.asc」というファイルがある場合、「git show タグ:README.asc」と指定すると、タグで指定した時点でのREADME.ascファイルの内容を表示します。

 同様にbookディレクトリがある場合は「git show タグ:book」とすると、タグで指定した時点におけるbookディレクトリの内容を表示します。

 なお、以下のコマンドの実行例では前回に引き続き「progit2-ja」を使用しています。「git clone https://github.com/progit/progit2-ja」で自分の環境に複製を作り(連載第381回)、ワークツリーであるprogit2-jaディレクトリの中で実行しています。

コマンド実行例

git show コミット:パス名

(指定したコミットの時点におけるパスの内容を表示する)

git show HEAD:README.asc

(最新コミットの「README.asc」ファイルの内容を表示する)

 画面1と画面2は、さまざまな時点における「README.asc」の内容を表示しています。

画面1画面1 最新のコミット内容を表示したところ画面2画面2 特定の時点のコミット内容を表示したところ

 画面2で最初の実行結果が「fatal」になっているのは、「55dbace」の時点では「README.asc」というファイルが存在しないためです。なお「55dbace」はかなり初期のコミットです。

目次に戻る

変更前の内容を表示する、タグで検索する

 画面3では、直近5回分のコミットで(git log –oneline -5)、どのファイルが更新されているかを(–name-only)確認しています(連載第386回)。その結果、「8f5156f」というコミットで、「book/04-git-server/sections/git-daemon.asc」の更新があったと分かりました。画面3ではその後、「git show 8f5156f:book/04-git-server/sections/git-daemon.asc」で内容を表示しています。

 変更前の内容を表示したい場合は、コミットを「8f5156f^」のように「^」を付けて指定し、「git show 8f5156f^:book/04-git-server/sections/git-daemon.asc」とすると表示できます。

 なお、変更内容は、「git log」の「–patch」オプション(連載第386回)でも確認できます。

コマンド実行例

git show 2.0.0:book/

(タグ「2.0.0」時点のコミットにおける、bookディレクトリのファイルを一覧表示する)

git show 8f5156f:book/04-git-server/sections/git-daemon.asc

(ハッシュ値「8f5156f」の時点のコミットにおける、「book/……/git-daemon.asc」というファイルの内容を表示する)

git show 8f5156f^:book/04-git-server/sections/git-daemon.asc

(ハッシュ値「8f5156f」の変更元に当たるコミットにおける、「book/……/git-daemon.asc」というファイルの内容を表示する)

画面3画面3 最近更新されたファイルを探して内容を表示したところ

 画面4では、「git tag」でタグの一覧を確認しています。

画面4画面4 タグの一覧を確認したところ

 画面5では「2.0.0」の時点でのbookディレクトリの内容を「git show 2.0.0:book/」として表示しました。比較のため、「git show HEAD:book/」で最新コミット時のbookも表示しました(画面6)。なお、末尾の「/」は省略可能です。

画面5画面5 タグを指定して特定のディレクトリの内容を表示したところ画面6画面6 画面5と比較するために最新コミット時のディレクトリの内容を表示したところ

目次に戻る

筆者紹介

西村 めぐみ(にしむら めぐみ)

元々はDOSユーザー。ソフトハウスに勤務し生産管理のパッケージソフトウェアの開発およびサポート業務を担当、その後ライターになる。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『[新版 zsh&bash対応] macOSコマンド入門』『Accessではじめるデータベース超入門[改訂2版]』など。地方自治体の在宅就業支援事業にてMicrosoft Officeの教材作成およびeラーニング指導を担当。会社等の”PCヘルパー”やピンポイント研修なども行っている。

仮想通貨カジノパチンコau ペイ 飲食 店 キャンペーン

コメントを残す

業界連盟:k8 カジノ k8 カジノ パチンコ 大工 の 源 さん k8 カジノ k8カジノ k8 カジノ k8 カジノ k8 ログイン | Feed | RSS | sitemap.html | Sitemap