[解決済み] git stash はブランチ専用ですか、それともリポジトリ全体ですか?
質問
あるブランチに入り、作業を行いました。 別のブランチに入りたかったのですが、コミットしたくなかったので、次のようにしました。
git stash
. それから
git checkout <otherbranch>
. そこでいくつかの作業をしましたが、最初のブランチと同じように、作業をコミットする前に切り替えたかったのです。 そこで私は
git stash
を実行しました。 最初のブランチに戻って、それをアンスタッシュしようとしました (
git stash pop
を実行してみました。 私は、その特定のブランチから隠し場所を取得すると思っていました。
<otherbranch>
(最新のstash)からstashを解いたことに驚きました。 私は、stashはブランチ固有であるという印象を持っていましたが、この動作は、ローカルリポジトリ全体に対して1つのstashしかないことを表しています。
は
git stash
はブランチ専用ですか、それともリポジトリ全体ですか? リポジトリ全体に適用されるのであれば、オプションを渡してブランチ専用にすることはできますか?
どのように解決するのですか?
現在のスタッシュを見るには。
git stash list
スタックから特定の隠し場所を選ぶには、その隠し場所を
stash@{number}
で示される。
ブランチごとの挙動にしたい場合は、ブランチ上でコミット(または複数のコミット)を行えばよいでしょう。 そのコミットは後でいつでも "unmake" することができます (たとえば
git reset
を使えば)。
--soft
または
--mixed
を参照してください。
git reset ドキュメント
をご覧ください。
git rebase -i
で最終的なコミットだけを残し、一時的なコミットは破棄します)。
(本当にエミュレートするために
git stash
を本当にエミュレートするには、少なくとも二つのコミットが必要です。一つはインデックスの状態、もう一つはワークツリーの状態です。 しかし、インデックスの状態を保存したり復元したりする予定がないのなら、単に
git add -A
を実行し、それを一時的なコミットに含めることができます。 あるいは
git stash
はシェルスクリプトなので、これをコピーして修正すれば、デフォルトでブランチごとに動作させることができます。
refs/pb-stash/branch
を作業用の名前空間として使用し、単一のグローバルな
refs/stash
を作業名空間として使用します。 それでも、明示的に名前を付けることによって、あるブランチから別のブランチに隠し場所を持ち込むことは可能です)。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] git rebase の取り消し
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Gitで落としたスタッシュを復元する方法とは?
-
[解決済み】ローカルの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 commit to GitHub エラー、プロンプト ! [リモート拒否] master -> master (pre-receive hook declined) エラー: 失敗しました。
-
gitlab をアップロード ! [リモート拒否] dev -> dev (受信前のフックが拒否されました)
-
undefinedmaster -> master (non-fast-forward) と git ! [拒否] master -> master (フェッチファースト)
-
git-fatal: 設定されたプッシュターゲットがありません / 警告: store/README.md の LF は CRLF に置き換えられています。
-
git reports an error fatal: unable to auto-detect email address (got 'Administrator@MS-20180504MMDH.(none)')
-
git のコンパイルとインストールの問題を解決する fatal: https のリモートヘルパーが見つからない
-
[解決済み] なぜGitでコミットする前にステージが必要なのですか?
-
[解決済み] VSCodeからgitの統合を削除する
-
[解決済み] GitとSSH、どちらのキーを使うか?
-
[解決済み] Git タグリスト、コミット sha1 ハッシュの表示