IntelliJ 的 Shelve 和 Git 存储之间的区别是什么?

IntelliJ 支持 git 存储以及它自己内置的搁置命令。它们的用途和效用似乎几乎完全相同。他们之间有什么区别?

56114 次浏览

来自 IntelliJ 文件:

在 Git 集成中,除了搁置和取消搁置之外,还分别支持“存储”和“取消存储”。这些特性有很多共同之处,唯一的区别在于补丁的生成和应用方式。

  • 带有隐藏更改的补丁是由 Git 自己生成的。
  • 带有搁置更改的补丁是由 IntelliJIDEA 生成的。通常,它们也通过 IDE 应用。在 IntelliJIDEA 之外应用搁置的更改也是可能的,但需要额外的步骤。

它们非常相似,除了:

  • 您不能在 IDE 之外使用搁置,因为它是 Intellij 的特性。
  • Git 隐藏只适用于整个工作目录和索引。IntelliJ 的搁置可以处理单个文件和变更列表(IntelliJ 的另一个特性)。正如你所看到的,例如,给你,有时是必要的。
  • 创意有更好的内置支持搁置。使用 git 存储更加简单。特别是,您可以搁置取消搁置您的更改,或从版本控制工具窗口查看搁置的文件。

此外,恕我直言,搁置的工作稍快,特别是在一个大型项目,当大量的文件被更改。

有关更多信息,请参见 文件

Intellij 的 Shelve 与普通 Git 相比有一个明显的优势,那就是使用 Shelve,您可以在一个变更列表中保存属于多个回购的更改。使用存储,您需要在每个回购单独存储/取消存储。这在具有多个模块(每个模块都有自己的回购协议)的大型项目中非常有用,其中特定的功能工作可能跨越多个模块(因此是多个回购协议)

文件是这么说的

存储更改与搁置非常相似。唯一的区别在于补丁的生成和应用方式。Stash 是由 Git 生成的,可以从 IntelliJIDEA 内部应用,也可以从其外部应用。带有搁置更改的补丁由 IntelliJIDEA 生成,也可以通过 IDE 应用。另外,存储涉及所有未提交的更改,而当您将更改放到搁置中时,您可以选择一些本地更改,而不是将它们全部搁置。