[解決済み】git stashの意図されたユースケースは何ですか?
2022-04-09 14:51:58
質問
Aブランチで作業しているときに、突然Bブランチで作業する必要が生じた場合、Aブランチでのコミットの準備が整う前に、変更をAに隠し、Bをチェックアウトしてそこで作業を行い、その後Aをチェックアウトして隠したものを適用します。
Aで作業をしていて、その日は作業を中断したい場合、作業をためておいて、翌日(作業を再開するとき)にそれを適用すべきでしょうか。それとも、作業ディレクトリに未コミットの修正ファイルをそのままにしておくべきでしょうか? この場合、セキュリティ上の利点がある場合を除いて、stashを使用する必要があるとは思えません。
また、もうひとつのシナリオとして、私は職場と自宅の両方で仕事をしています。家に帰りたいときにコミットの準備ができていない場合、自分の仕事を隠して GitHub にプッシュし、家でそれをプルすることができますか?
どのように解決するのですか?
Stashはあくまで便利な方法です。gitではブランチの管理が非常に安価で簡単なので、個人的にはスタッシュするよりも新しい一時的なブランチを作成する方が良い場合がほとんどですが、これはほとんど好みの問題です。
私がスタッシュしたいのは、前回のコミットで何か忘れていることに気づき、同じブランチですでに次のコミットを始めてしまった場合です。
# Assume the latest commit was already done
# start working on the next patch, and discovered I was missing something
# stash away the current mess I made
git stash save
# some changes in the working dir
# and now add them to the last commit:
git add -u
git commit --amend
# back to work!
git stash pop
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] Git フェッチ リモートブランチ
-
[解決済み] Gitで落としたスタッシュを復元する方法とは?
-
[解決済み] 特定のファイルを git stash するにはどうしたらいいですか?
-
[解決済み] 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のエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] TortoiseGitで「git did not exit cleanly (exit code 128)」というエラーを解決するには?[クローズド]
-
[解決済み] ブラウンアウトの一環として、パスワード認証が一時的に無効になっています。代わりに個人用アクセストークンを使用してください[重複]。
-
[解決済み] git commit signing failed: secret key not available.
-
[解決済み] git initを2回実行すると、リポジトリが初期化されますか?それとも既存のリポジトリを再初期化しますか?
-
[解決済み] GitのFETCH_HEADとはどういう意味ですか?
-
[解決済み] git リモートリポジトリには、ローカルブランチにマージされていないコミットが含まれています。