IntelliJ支持git stashes以及它自己内置的shelve命令。这些似乎在目的和效用上几乎相同。他们之间有什么区别?
答案 0 :(得分:55)
来自IntelliJ documentation:
在Git集成中,除了搁置和搁置之外,还分别支持“存储”和“取消搁置”。这些功能有很多共同之处,唯一的区别在于补丁的生成和应用方式。
- Git本身会生成带有隐藏更改的修补程序。要在以后应用它们,您不需要IntelliJ IDEA。
- IntelliJ IDEA生成带有搁置更改的修补程序。通常,它们也通过IDE应用。在IntelliJ IDEA之外应用搁置的更改也是可能的,但需要额外的步骤。
答案 1 :(得分:26)
它们非常相似,除了:
此外,恕我直言,搁置的工作速度稍快,尤其是在大型项目中,当大量文件发生变化时。
有关详细信息,请参阅documentation。
答案 2 :(得分:10)
Intellij的Shelve比普通Git存储的一个明显优势是使用Shelve,您可以将属于多个repos的更改保存在一个更改列表中。使用stash,您需要单独存储/取消存储每个repo。这在具有多个模块(每个模块都有自己的存储库)的大型项目中非常有用,其中特定功能可以跨越多个模块(因此需要多个存储库)
答案 3 :(得分:0)
隐藏更改与搁置非常相似。唯一的区别在于补丁的生成和应用方式。缓存是由Git生成的,可以在IntelliJ IDEA内部或外部应用。具有搁置更改的补丁程序是由IntelliJ IDEA生成的,也可以通过IDE应用。此外,存储涉及所有未提交的更改,而将更改放入架子时,您可以选择一些本地更改而不是将其全部搁置。