当前位置: 首页 > 知识库问答 >
问题:

IntelliJ的Shelve和Git stash有什么区别?

家弘业
2023-03-14

IntelliJ支持git存储以及它自己的内置shelve命令。这些似乎在目的和用途上几乎相同。他们之间有什么区别?

共有3个答案

王俊楚
2023-03-14

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

萧成文
2023-03-14

它们非常相似,除了:

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

此外,IMHO,shelve的工作速度稍微快一点,尤其是在一个大项目中,当许多文件被更改时。

有关更多信息,请参阅文档。

高运诚
2023-03-14

从IntelliJ留档:

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

  • 带有隐藏更改的补丁由Git本身生成。以后要应用它们,您不需要IntelliJ IDEA
  • 带有搁置更改的补丁由IntelliJ IDEA生成。通常,它们也通过IDE应用。在IntelliJ IDEA之外应用搁置的更改也是可能的,但需要额外的步骤
 类似资料:
  • 我知道Shelve不是Git命令,它们都用于搁置未完成的工作。有什么区别?哪一个更灵活?

  • 问题内容: 两者都意味着空间,但是有什么区别吗? 问题答案: 一个是不间断空间,另一个是常规空间。不间断的空格表示该行不应在该点处换行,就像它不会在一个单词的中间换行一样。 此外,正如斯文德(Svend)在其评论中指出的那样,不间断的空间不会崩溃。

  • 本文向大家介绍<%# %> 和 <% %> 有什么区别?相关面试题,主要包含被问及<%# %> 和 <% %> 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 答:<%# %>表示绑定的数据源 <%%>是服务器端代码块  

  • 问题内容: 以下代码之间有什么区别: 和 Python建议采用一种做事方式,但有时似乎不止一种。 问题答案: 一个是函数调用,一个是文字: 使用第二种形式。它更具Python风格,并且可能更快(因为它不涉及加载和调用单独的函数)。

  • 问题内容: 我一直认为Java 中的运算符用于验证其两个布尔操作数是否均为,并且该&运算符用于对两种整数类型进行按位运算。 最近我知道,也可以使用运算符来验证其两个布尔操作数是否均为,唯一的区别是即使LHS操作数为false,它也会检查RHS操作数。 Java中的运算符是否在内部重载?还是在这背后有其他概念? 问题答案: <-验证两个操作数 <-停止评估第一个操作数是否为false,因为结果为fa

  • 问题内容: JavaScript中的&和&&有什么区别? 示例代码: 似乎&&是一个逻辑上的“和”,如果两个都为true,则总是为我提供第二个值。 但是什么是&? (顺便说一下,&&在Python中似乎是“ and”;&在Python中似乎是&。) 问题答案: 是按位AND 该运算符期望 两个数字 并重新调整一个 数字。 如果它们不是数字,则将其强制转换为数字。 注意: 在Javascript中,