[解決済み] Git stash uncached: すべてのステージングされていない変更を片付けるには?
質問
gitでバージョン管理されているプロジェクトで、2つの変更が行われたとします。一方はステージングされ、もう一方はステージングされていません。
この状態(コミット前)でプロジェクトを実行し、ステージングされた変更を再確認したいのですが。 ステージングされていない変更をすべて片付け、ステージングされたものだけを残す簡単な方法は何ですか? そこで、ステージングされていない変更をプロジェクトから消し去る必要がありますが、今後の作業のためにどこかに保存しておく必要があります。
これは、非常によく似ています
git stash
コマンドを使用します。しかし
git stash
を実行すると、アンステージとステージングの両方の変更が私のプロジェクトから取り除かれます。そして、次のようなものは見当たりません。
git stash uncached
.
解決方法は?
アップデート2:
なぜこの答えに文句を言う人がいるのかわかりません。私の場合は完璧に動作しているようです。
-u
フラグ
完全なコマンドは次のようになります。
git stash --keep-index -u
そして、以下がそのスニペットです。
git-stash
ヘルプ
keep-index オプションを使用すると、すでに追加されたすべての変更が はそのまま残ります。
include-untracked オプションを使用した場合、すべての未追跡のファイルは を使用してクリーンアップします。 ディレクトリを非常にクリーンな状態にします。代わりに --all オプションを使用した場合 に加えて、無視されたファイルも保管され、クリーニングされます。 未追跡のファイル
そして、これがその様子を写したgifです。
更新しました。
今日(2020/1/31)も自分の答えをgitバージョンでテストしてみました。
2.24.0
追跡されていないファイルについて、上に小さなメモを追加しました。
もし、うまくいかないと思われる方は、gitのバージョンも教えてください。
古い回答
:
もし
--keep-index
オプションが使われると、すでにインデックスに追加されているすべての変更がそのまま残されます。
git stash --keep-index
から
のドキュメントを参照してください。
git-stash
:
部分コミットのテスト
を使用することができます。
git stash save --keep-index
を2つ以上作成したい場合 ワークツリーの変更点のうち、より多くのコミットを行い、その内容をテストしたい場合。 は、コミットする前に各変更を行います。# ... hack hack hack ... $ git add --patch foo # add just first part to the index $ git stash save --keep-index # save all other changes to the stash $ edit/build/test first part $ git commit -m 'First part' # commit fully tested change $ git stash pop # prepare to work on all other changes # ... repeat above five steps until one commit remains ... $ edit/build/test remaining parts $ git commit foo -m 'Remaining parts'
しかし、ステージングされた変更点のみを視覚的に確認したいだけなら
difftool
:
git difftool --cached
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] ステージングされた変更を表示するにはどうしたらいいですか?
-
[解決済み] Gitで落としたスタッシュを復元する方法とは?
-
[解決済み] 未追跡のファイルを保存する方法を教えてください。
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git:コミットに何も追加されていないが、未追跡のファイルが存在する
-
[解決済み】GitHubで空のブランチを作成する
-
[解決済み】git push >> fatal: 設定されたプッシュ先がありません。
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push some refs to .......
-
[解決済み】gitの「not something we can merge」エラーの解決方法
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み] TortoiseGitで「git did not exit cleanly (exit code 128)」というエラーを解決するには?[クローズド]
-
[解決済み] GitBash | origin master - rejected (fetch first) | GitHub リポジトリにファイルがない。
-
[解決済み] ステージングされた変更のみをgitに保存する - それは可能ですか?
-
[解決済み] Gitでファイルのステージを解除する方法が2つあるのはなぜですか?