如何使用我收藏的内容格式化补丁

时间:2010-01-29 08:07:22

标签: git git-stash git-patch

在git中,我隐藏了我的变化。我可以用我藏的东西创建补丁吗?并将补丁应用于其他一些存储库(我的同事)?

我知道'git format-patch -1'但我认为这是我所承诺的。但是我正在寻找同样存在的变化吗?

如何在其他存储库中应用补丁?

5 个答案:

答案 0 :(得分:133)

当然,git stash show支持这一点:

git stash show -p

答案 1 :(得分:49)

此答案提供有关保存修补程序并将其应用于您想要使用它的信息。

将输出存储在文件中:

 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

答案 2 :(得分:16)

使用

$> 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实际上会在您藏匿时创建提交对象。

他们像其他一切一样提交。你可以在一个分支中查看它们:

$> git checkout -b with_stash stash@{0}

然后您可以发布此分支,并且您的同事可以合并或挑选该提交。

答案 3 :(得分:11)

以上解决方案不适用于二进制数据。 以下添加了对它的支持:

git stash show stash@{0} -p --binary

编辑

注意:我只是想在上面的回复中添加评论,但我的声誉还不够。

答案 4 :(得分:2)

我相信这可能是最近Git的最新成果之一。你不必修补你所隐藏的变化。你可以将你在一个分支上的藏匿更改应用到另一个分支。

在分支A上说你已经隐藏了一些更改,称为stash @ {1}。

您现在切换到分支B.您可以这样做:

$git stash apply stash@{1}

这会将您的分支A更改为分支B。