変更をあるブランチから次のブランチに移動できると思いますが、それはチェリーピッキングの目的であり、変更をコミットしないのであれば、おそらくそれらを移動するべきではありませんか?
私は時々、間違ったブランチに間違った隠し場所を適用したことがあります。そのため、この質問について疑問に思いました。
前述のように、「ブランチごとのスタッシュ」が必要な場合は、既存のブランチから分岐した新しいブランチが本当に必要です。
また、スタッシュを使用すると、作業中のブランチをプルできるという事実に加えて、すべてをコミットする前にswitchブランチを使用できます。これは、通常の意味でのチェリーピッキングではなく、チェリーピッキング作業コピーには役立ちません。
F.ex.、機能ブランチで作業しているときに、そのブランチに関係のないコード内のマイナーなバグや表面的な不純物に気付くことがよくあります。まあ、私はそれらをすぐに修正します。コミットするときは、関連する変更を選択的にコミットしますが、修正や外観はコミットしません。代わりに、それらを隠しておきます。これにより、マイナーフィックスオンステーブルブランチに切り替えることができます。そこで、スタッシュを適用して、各マイナー修正を個別にコミットできます。 (問題の変更に応じて、別の機能ブランチに切り替えるために、それらのうちのいくつかを再び隠しておくthoseを適用する。)
これにより、作業中にプログラミングモードに深く入ることができ、コードの適切な司書について心配する必要がありません。その後、精神的な休憩をとると、戻って自分の変更をすべての適切な棚に注意深く分類できます。
隠し場所がグローバルではなかった場合、このタイプのワークフローははるかに困難になります。
ブランチから実行される「スタッシュ」が必要な場合は、次のようにして、現在のブランチから新しいブランチに変更を保存します。
git checkout -b new_stash
git commit -a -m "stashed changes"
隠し場所を元に戻す
git reset HEAD^
git branch -d new_stash
git stashは、ダーティーツリーに変更をプルできるため、特に優れた編集があり、
git pull
できません。変更を隠して、プルしてから適用することができます
git stash
git pull
git stash apply
git stash clear
これが役に立てば幸い!
git-stashは、まだチェックインされていない変更を、現在チェックアウトされているものとは別のブランチに移動するのに最も役立ちます。
たとえば、私はバグ修正ブランチで簡単な変更をしていることがよくあります。私が取り組んでいる変更は、私が最初に想像したよりも複雑であることがわかりました。 Git-stashは、一連の変更を別のブランチに移動する最も簡単な方法です。