Git のスタッシュ内の変更を表示する方法

GitBeginner
オンラインで実践に進む

はじめに

Git stash は、コミットせずにローカルの変更を一時的に保存できる強力な機能です。このチュートリアルでは、Git stash 内の変更を表示する方法、および保存した変更を効果的に管理して作業する方法を学びます。

Git Stash の理解

Git Stash は、Git の強力な機能で、コミットせずにローカルの変更を一時的に保存できます。これは、別のブランチやタスクに切り替える必要があるが、行った作業を失いたくない場合に特に便利です。

変更をスタッシュすると、Git は作業ディレクトリとインデックスの現在の状態を含む新しいスタッシュエントリを作成します。その後、別のブランチに切り替えて別の作業を行い、後でスタッシュした変更を復元することができます。

Git Stash の主な使用例は以下の通りです。

  1. ブランチの切り替え:未コミットの変更がある状態で別のブランチに切り替える必要がある場合、変更をスタッシュして別のブランチに切り替え、後でスタッシュした変更を適用することができます。

  2. 部分的な変更の適用:別々にコミットしたい変更が混在している場合、すぐにコミットしたくない変更をスタッシュし、コミットしたい変更をコミットしてから、後でスタッシュした変更を適用することができます。

  3. 作業ディレクトリの整理:作業ディレクトリに多くの追跡されていないまたは変更されたファイルがある場合、リモートリポジトリから変更をプルまたはマージする前に、それらをスタッシュして作業ディレクトリを整理することができます。

Git Stash を使用するには、以下のコマンドを実行できます。

## Stash your current changes
git stash

## List all stashed changes
git stash list

## Apply the most recent stash
git stash apply

## Apply a specific stash
git stash apply stash@{index}

## Drop the most recent stash
git stash drop

## Apply and then drop the most recent stash
git stash pop

Git Stash の基本を理解することで、ローカルの変更を効果的に管理し、作業を失うことなくタスクやブランチを切り替えることができます。

スタッシュ内の変更の表示

変更をスタッシュした後、実際にスタッシュされた内容を確認したい場合があります。Git は、スタッシュ内の変更を表示するいくつかの方法を提供しています。

スタッシュされた変更の一覧表示

すべてのスタッシュされた変更の一覧を表示するには、git stash list コマンドを使用できます。

git stash list

これにより、コミットメッセージ、変更がスタッシュされたブランチ、およびスタッシュインデックスを含む、すべてのスタッシュされた変更が表示されます。

スタッシュの差分の表示

スタッシュされた実際の変更を表示するには、git stash show コマンドを使用できます。これにより、スタッシュされた変更とリポジトリの現在の状態との差分が表示されます。

## View the diff of the most recent stash
git stash show

## View the diff of a specific stash
git stash show stash@{index}

また、要約だけでなく完全なパッチを表示するには、-p または --patch オプションを追加できます。

git stash show -p
git stash show stash@{index} -p

スタッシュ内のファイルの表示

スタッシュされたファイルの一覧を表示したい場合は、git stash show --name-only コマンドを使用できます。

## Show the files in the most recent stash
git stash show --name-only

## Show the files in a specific stash
git stash show stash@{index} --name-only

これにより、スタッシュされた変更で変更、追加、または削除されたファイルの一覧が表示されます。

これらのコマンドを理解することで、現在スタッシュされている変更を簡単に確認でき、それらの変更をどのように適用または管理するかを決定する際に役立ちます。

スタッシュされた変更の管理

変更をスタッシュした後、それらのスタッシュされた変更をさまざまな方法で管理する必要がある場合があります。Git はこれを支援するためのいくつかのコマンドを提供しています。

スタッシュされた変更の適用

最新のスタッシュから変更を適用するには、git stash apply コマンドを使用できます。

git stash apply

これにより、最新のスタッシュからの変更が現在の作業ディレクトリとインデックスに適用されます。

特定のスタッシュを適用したい場合は、stash@{index} 構文を使用して適用したいスタッシュを指定できます。

git stash apply stash@{2}

スタッシュされた変更の削除

スタッシュされた変更が不要になった場合は、git stash drop コマンドを使用してスタッシュリストから削除できます。

## Drop the most recent stash
git stash drop

## Drop a specific stash
git stash drop stash@{2}

一度に適用と削除

スタッシュを適用してすぐに削除したい場合は、git stash pop コマンドを使用できます。

## Apply and drop the most recent stash
git stash pop

## Apply and drop a specific stash
git stash pop stash@{2}

これは、スタッシュを適用してスタッシュリストから削除する手順を一度に行う便利な方法です。

スタッシュ全体のクリア

すべてのスタッシュされた変更を削除したい場合は、git stash clear コマンドを使用できます。

git stash clear

これにより、すべてのスタッシュされた変更がスタッシュリストから削除されます。

これらのコマンドを理解することで、スタッシュされた変更を効果的に管理でき、必要なときに適用し、不要になったときに削除し、スタッシュリストをきれいに整理することができます。

まとめ

このガイドを終えるころには、Git のスタッシュ内の変更を表示する方法、およびスタッシュされた変更を管理して作業する方法をしっかりと理解できるようになります。この知識は、Git リポジトリを整理し、開発ワークフローを効率化するのに役立ちます。