git では、変更を隠しておきます。隠し持っているものでパッチを作成できる可能性はありますか? そして、そのパッチを他のリポジトリ (私の同僚のもの) に適用しますか?
私は知ってgit format-patch -1
いますが、それは私がコミットしたことのためだと思います。しかし、隠した変更に対して同じものを探しています。
また、他のリポジトリにパッチを適用するにはどうすればよいですか?
確かに、git stash show
これをサポートしています:
git stash show -p
だから、使う
git stash list
パッチとしてエクスポートするスタッシュの数を調べるには、次に
git stash show -p stash@{<number>} > <name>.patch
エクスポートします。
例えば:
git stash show -p stash@{3} > third_stash.patch
この回答は、パッチの保存と、使用する場所への適用の両方に関する情報を提供します。
出力をファイルにスタッシュするには:
git stash show -p --color=never > my-patch-name.patch
パッチが適切であることを確認します。
git apply --stat my-patch-name.patch
エラーがないことを確認します。
git apply --check my-patch-name.patch
パッチを適用する
git apply my-patch-name.patch
使用する
$> git stash list
stash@{0}: WIP on master: 84fx31c Merged with change to /public/
stash@{1}: WIP on master: 463yf85 FlupResource: also takes json as a query parameter
最近隠したもののリストを取得します。Git は、stash 時にコミット オブジェクトを実際に作成します。
それらは他のすべてと同様にコミットです。ブランチでそれらをチェックアウトできます。
$> git checkout -b with_stash stash@{0}
次に、このブランチを公開し、同僚がそのコミットをマージまたはチェリーピックできます。