0

我正在寻找一种方法来应用我的存储补丁,以便逐步查看我正在应用的内容。

如果我做git stash apply 0

  • 自动合并所有,如果在我运行后我git diff看不到更改。就像它自动上演所有。

  • 只有在应用后,在一个文件中存在一些冲突时,我才能解决冲突,并且在这样做之后,我可以看到未暂存的更改。

如何在申请过程中获得更多控制权,而不是全部应用代码并已暂存?

谢谢!

4

1 回答 1

1

如何在申请过程中获得更多控制权,而不是全部应用代码并已暂存?

无论如何,你不能——至少是第一个近似值。

问题是git stash apply使用合并引擎进行应用。合并引擎同时使用 Git 的索引和您的工作树。这里的术语索引是指与术语暂存区域相同的数据结构,存储在相同的位置。所以git stash apply将使用——并因此搞乱——暂存区。

但是,正如phd 评论的那样,您不必使用git stash apply. Usinggit stash show -p得到一个补丁,然后你可以通过各种补丁处理操作来提供它。

还有另一种攻击方式:Git 并不总是必须使用主)索引。您可以建立第二个临时索引并git stash apply在该第二个索引中进行操作。如果你尝试这样做,请小心。您可能需要使用git read-tree或仅将主索引复制到临时索引来填充临时索引。

这些都不是我推荐的方法,但是当你到达这一点时,我建议首先尽可能避免。 git stash原因很简单:你已经遇到过。存储代码通过提交来工作。这些提交在内部具有合并的形式,这意味着 Git 的其余部分不能很好地使用这些提交。只有git stash它自己知道如何使用这些特殊的存储提交。如果您不进行这些特殊的存储提交,而是进行普通的提交......好吧,Git 的其余部分非常清楚如何处理普通提交。您现在可以使用整个 Git 套件。你不必深入到 Git 来欺骗它;您不必回避事情就可以将藏匿处变成补丁。所有工具都以普通方式在这些普通提交上工作。

于 2021-02-18T06:08:44.017 回答