我shelve
对Git的方面非常陌生。如果stash
是用来搁置未完成的工作,那又是什么shelve
呢?你会用它做什么?
例如更新项目(来自 VCS 菜单)
一会得到(在 IntelliJ IDEA 2019.2 中)
我shelve
对Git的方面非常陌生。如果stash
是用来搁置未完成的工作,那又是什么shelve
呢?你会用它做什么?
例如更新项目(来自 VCS 菜单)
一会得到(在 IntelliJ IDEA 2019.2 中)
git shelve
Git 中不存在。
只有git stash
:
您有一个 2008 年的旧项目git shelve来隔离分支中的修改,但现在这不是很有用。
如Intellij IDEA shelve dialog中所述,“搁置和取消搁置”功能未链接到 VCS(版本控制系统工具),而是链接到 IDE 本身,用于临时存储您尚未在更改列表中提交的挂起更改。
将 JetBrains IDE 与 Git 一起使用时,“除了搁置和取消搁置之外,还支持“存储和取消存储操作。这些功能有很多共同点;主要区别在于生成和应用补丁的方式。搁置可以对单个文件或一堆文件进行操作“ _ _
除了以前的答案外,还有一个对我来说很重要的注意事项:
shelve
是 JetBrains 产品功能(如WebStorm
、PhpStorm
、PyCharm
等)。它将搁置的文件放入.idea/shelf
目录中。
stash
是git
选项之一。它将隐藏的文件放在.git
目录下。
如果我不在其他地方分享我的更改,我宁愿搁置更改而不是隐藏它们。
Stashing 是一个 git 功能,它不会让您选择特定文件或文件内的更改。搁置可以做到这一点,但这是特定于 IDE 的功能,而不是 git 功能:
如您所见,我可以选择指定要在我的搁置中包含哪些文件/行。请注意,我不能通过存储来做到这一点。
请注意,在 IDE 中使用搁架可能会限制补丁的可移植性,因为这些更改未存储在 .git 文件夹中。
一些有用的链接:
Shelf 是 JetBrains 的一项功能,而 Stash 是用于相同工作的 Git 功能。您可以使用任一功能切换到不同的分支,而无需提交和丢失工作。我个人的经验是使用Shelf。