あるブランチから次のブランチに変更を移動できると思いますが、それがチェリーピッキングの目的であり、変更をコミットしていない場合は、変更を移動するべきではないでしょうか?
私はときどき、間違ったブランチに間違ったスタッシュを適用したことがあり、この質問について疑問に思っていました。
前述のように、「ブランチごとのスタッシュ」が必要な場合は、既存のブランチから分岐する新しいブランチが本当に必要です。
また、スタッシュを使用すると、作業中のブランチにプルできるという前述の事実に加えて、すべてをコミットする前にブランチを切り替えることもできます。これは、通常の意味でのチェリーピッキングではなく、作業コピーのチェリーピッキングに役立ちます。
例: フィーチャー ブランチで作業しているときに、そのブランチに関係のないマイナーなバグや表面的な不純物がコードにあることに気付くことがよくあります。さて、私はそれらをすぐに修正します。コミットする時が来たら、関連する変更を選択的にコミットしますが、修正や装飾はコミットしません。代わりに、それらをスタッシュして、minor-fixes-on-stable ブランチに切り替えることができます。そこで、スタッシュを適用して、各マイナー フィックスを個別にコミットできます。(問題の変更に応じて、それらのいくつかをもう一度隠して、別の機能ブランチに切り替えて、それらを適用します。)
これにより、作業中にプログラミングモードに深く入り込むことができ、コードの適切なライブラリアンシップについて心配する必要がなくなります。その後、精神的な休憩を取ったら、戻って変更を適切なすべてのシェルフに慎重に並べ替えることができます。
スタッシュがグローバルでない場合、このタイプのワークフローを実行するのははるかに困難になります。
Git 1.6 以降、次を使用してスタッシュをブランチに適用できるようになりました
git stash branch name_of_new_branch
Git が新しいブランチを作成します。チェックしてみてください。詳細については、次を参照してください。
info git-stash
option= で検索しますbranch
。
を使用して隠し場所を移動できると思います
git stash branch <branch | new_branch> [<stash>]
スタッシュのリストを表示するには、次を使用します
git stash list
ブランチから実行される「スタッシュ」が必要な場合は、次のようにして、現在のブランチから新しいブランチに変更を保存します。
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は、その一連の変更を別のブランチに移動する最も簡単な方法です。