[解決済み] git stash から単一のファイル(またはファイルへの変更点)を抽出するにはどうすればよいですか?
質問
git stash から単一のファイルまたはファイルの diff を、stash のチェンジセットをポップオフすることなく抽出することは可能ですか?
どのように解決するのですか?
について ギットスタッシュ という記述があります("Discussion" のセクション、"Options" の説明のすぐ後)。
<ブロッククオートスタッシュはコミットとして表現され、そのツリーにはそのコミットの状態が記録されます。 作業ディレクトリを指し、その最初の親は、その作業ディレクトリの が作成されました。
そのため、stashを扱うことができます(例.
stash@{0}
をマージコミットとして使用します。
$ git diff stash@{0}^1 stash@{0} -- <filename>
説明する。
stash@{0}^1
は、与えられた隠し場所の最初の親を意味し、上の説明で述べたように、変更が隠し場所となったコミットを意味します。この形式の "git diff" (ふたつのコミットを含む) を使用するのは、次の理由からです。
stash@{0}
/
refs/stash
はマージコミットであり、どの親に対して diff を取得したいのかを git に伝えなければなりません。より暗号化されています。
$ git diff stash@{0}^! -- <filename>
も動作するはずです (
git rev-parse
の説明のためにmanpageを参照してください。
rev^!
の構文、quot;範囲の指定"のセクションで説明)。
同様に ジットチェックアウト を使用して、隠し場所から1つのファイルをチェックします。
$ git checkout stash@{0} -- <filename>
または別のファイル名で保存します。
$ git show stash@{0}:<full filename> > <newfile>
または
$ git show stash@{0}:./<relative filename> > <newfile>
(
書簡
ここで、 <full filename> は、プロジェクトのトップディレクトリからの相対的なファイルのフルパス名であること(例えば、"secret "ディレクトリからの相対パス名)。
stash@{0}
)).
を保護する必要があるかもしれません。
stash@{0}
をシェル展開で使用します。
"stash@{0}"
または
'stash@{0}'
.
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] Gitで落としたスタッシュを復元する方法とは?
-
[解決済み] 特定のファイルを git stash するにはどうしたらいいですか?
-
[解決済み] 未追跡のファイルを保存する方法を教えてください。
-
[解決済み】"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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ERROR: Error cloning remote repo 'origin'.
-
[解決済み】gitが「変更をコミットするか、マージする前にstashしてください」と言うのを解決するには?
-
[解決済み】Githubエンタープライズ - リモート。Git の操作でパスワード認証が利用できない
-
git revert + git rebase 一度に複数のコミット_本然233的博客程式员息信网_git revert Multiple
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み】ローカルGitブランチとそのリモートブランチを比較する方法
-
[解決済み] "fatal: This operation must be run in work tree." というメッセージが表示されるのはなぜですか?
-
[解決済み] 適用せずにスタッシュの中身を見る【重複あり
-
[解決済み] 特定のファイルだけをアンスタッシュする方法は?
-
[解決済み】git-checkout 古いリビジョンのファイルを新しい名前でチェックアウトする