IntelliJ支持git stashes和它自己内置的shelve命令。这些命令在用途和实用性上看起来几乎相同。它们之间有什么区别?
dfddblmv1#
从IntelliJ documentation:在Git集成中,除了搁置和取消搁置,还分别支持“stashing”和“unstashing”,这些特性有很多共同之处,唯一的区别是补丁生成和应用的方式。
hyrbngr72#
它们非常相似,除了:
此外,恕我直言,shelve的工作速度略快,尤其是在一个大项目中,当大量文件被更改时。有关详细信息,请参阅文档。
pes8fvy93#
Intellij的Shelve相对于普通Git的stash的一个明显优势是,使用Shelve,你可以将属于多个repos的更改保存在一个changelist中。使用stash,你需要分别在每个repos中进行stash/unstash操作。这在包含多个模块(每个模块都有自己的repo)的大型项目中非常有用,在这种情况下,一个特定的特性工作可能会跨越多个模块(因此也会跨越多个repos)。
uplii1fm4#
以下是Documentation的说明存储更改与搁置非常相似。唯一的区别是生成和应用补丁的方式。存储由Git生成,可以从IntelliJ IDEA内部或外部应用。包含搁置更改的补丁由IntelliJ IDEA生成,也可以通过IDE应用。此外,存储涉及所有未提交的更改,而当您将更改放到shelf时,您可以选择一些本地更改,而不是搁置所有更改。
4条答案
按热度按时间dfddblmv1#
从IntelliJ documentation:
在Git集成中,除了搁置和取消搁置,还分别支持“stashing”和“unstashing”,这些特性有很多共同之处,唯一的区别是补丁生成和应用的方式。
hyrbngr72#
它们非常相似,除了:
此外,恕我直言,shelve的工作速度略快,尤其是在一个大项目中,当大量文件被更改时。
有关详细信息,请参阅文档。
pes8fvy93#
Intellij的Shelve相对于普通Git的stash的一个明显优势是,使用Shelve,你可以将属于多个repos的更改保存在一个changelist中。使用stash,你需要分别在每个repos中进行stash/unstash操作。这在包含多个模块(每个模块都有自己的repo)的大型项目中非常有用,在这种情况下,一个特定的特性工作可能会跨越多个模块(因此也会跨越多个repos)。
uplii1fm4#
以下是Documentation的说明
存储更改与搁置非常相似。唯一的区别是生成和应用补丁的方式。存储由Git生成,可以从IntelliJ IDEA内部或外部应用。包含搁置更改的补丁由IntelliJ IDEA生成,也可以通过IDE应用。此外,存储涉及所有未提交的更改,而当您将更改放到shelf时,您可以选择一些本地更改,而不是搁置所有更改。