在git中,我隐藏了我的变化。我可以用我藏的东西创建补丁吗?并将补丁应用于其他一些存储库(我的同事)?
我知道'git format-patch -1'但我认为这是我所承诺的。但是我正在寻找同样存在的变化吗?
如何在其他存储库中应用补丁?
答案 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。