36

我想将 git stash 中的一些更改应用于一个提交,并将其余更改应用于另一个。

4

4 回答 4

53
git checkout stash@{0} -- <filename>

您也可以使用列表或文件名全局执行此操作。

于 2015-08-29T00:22:40.853 回答
18

看起来您可以git checkout -p与存储参考一起使用,例如 stash@{0}. 这将让您从存储中逐个选择要应用于工作树的内容。

完成使用后git checkout -p,您接受的更改将应用​​于您的工作树并添加到缓存/索引中,准备提交。您可以git checkout -p stash@{0}多次使用,选择您想要的补丁并在此过程中多次提交。

于 2018-06-16T02:18:11.080 回答
10

仅对要更改的文件应用补丁。

git show --first-parent stash@{0} -- <file(s) in question> | git apply
于 2016-04-20T15:49:41.467 回答
7

解开隐藏...

git stash pop

...git add在补丁模式下使用...

git add -p

...然后提交...

git commit -m "Partial stashed commit"

在没有阅读文档的情况下,这就是我很快想到的。狮子座的答案有更好的方法来实现这一点。

于 2013-03-04T23:09:21.187 回答