我想将git stash中的一些更改应用于一个提交,将其余更改应用于另一个提交。
答案 0 :(得分:30)
git checkout stash@{0} -- <filename>
对于每次提交以及与每个提交相关的所有文件名,请执行两次此操作。您可以为列表或文件名的全局代码执行此操作。
答案 1 :(得分:7)
解冻藏匿......
git stash pop
...在补丁模式中使用git add
...
git add -p
...然后提交......
git commit -m "Partial stashed commit"
这是在没有阅读文档的情况下很快就出现的问题。 Leo's answer有更好的方法来实现这一目标。
答案 2 :(得分:6)
仅为您要更改的文件应用修补程序。
git show stash@{0} -- <file(s) in question> | git apply
答案 3 :(得分:6)
您似乎可以将git checkout -p
与隐藏引用结合使用,例如stash@{0}
。这将允许您从存储中逐个选择要应用于工作树的内容。
使用git checkout -p
完成后,您接受的更改将应用于您的工作树并添加到缓存/索引,准备提交。您可以多次使用git checkout -p stash@{0}
,选择您想要的补丁,并在此过程中多次提交。