163

git では、変更を隠しておきます。隠し持っているものでパッチを作成できる可能性はありますか? そして、そのパッチを他のリポジトリ (私の同僚のもの) に適用しますか?

私は知ってgit format-patch -1いますが、それは私がコミットしたことのためだと思います。しかし、隠した変更に対して同じものを探しています。

また、他のリポジトリにパッチを適用するにはどうすればよいですか?

4

5 に答える 5

195

確かに、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
于 2010-01-29T08:09:17.297 に答える
77

この回答は、パッチの保存と、使用する場所への適用の両方に関する情報を提供します。

出力をファイルにスタッシュするには:

 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
于 2015-04-14T21:38:11.513 に答える
17

使用する

$> 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}

次に、このブランチを公開し、同僚がそのコミットをマージまたはチェリーピックできます。

于 2010-01-30T08:14:58.960 に答える