我怎样才能只申请一些git藏匿?

时间:2013-03-04 23:07:20

标签: git

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

4 个答案:

答案 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},选择您想要的补丁,并在此过程中多次提交。