Gitで作業中に「git addしていないファイルのみ」を一時的に退避(stash)させたい場合、通常のgit stashコマンドではインデックスに追加した変更も含まれてしまいます。ここでは、インデックスに追加していない変更だけをstashに保存する方法をいくつかの手順に分けて説明します。
手順
1.インデックスに追加した変更を保持しつつ、未addの変更のみをstashする
最初に、インデックスに追加していない変更だけをstashに保存したい場合は、git stash push --keep-indexコマンドを使用します。このコマンドを使うと、インデックスに追加されたファイルはそのままで、git addしていない変更だけがstashに保存されます。
git stash push --keep-index
2. 追跡されていないファイル(新規ファイル)もstashに含めたい場合
git stash push --keep-indexコマンドでは、未追跡(untracked)ファイルはstashに含まれません。もし新たに作成したファイルやディレクトリを含めてstashしたい場合は、-u(または--include-untracked)オプションを追加して実行します。
git stash push --keep-index -u
コマンドの詳細
-
git stash push --keep-index
インデックスに追加されていない(git addしていない)変更のみをstashに保存します。これにより、作業中の変更がstashされ、インデックスに追加された変更はそのまま保持されます。 -
-u(または--include-untracked)オプション
このオプションを使うことで、未追跡ファイル(新規作成したファイルやディレクトリ)もstashに含めることができます。
まとめ
- git stash push --keep-indexでインデックスに追加していない変更のみをstashに保存できます。
- -uオプションを使用することで、追跡されていないファイルもstashに含めることができます。
これで、git addしていないファイルや変更のみを一時的に退避させ、後で元の状態に戻すことができます。stashの内容を戻すには、git stash popを使って復元できます。