我对Git的shelve方面非常不熟悉(编辑:不是Git的一个方面,而是shelve的IntelliJ IDEA特性)。如果stash被用来搁置未完成的工作,那么shelve是什么?你会用它来做什么?例如,在更新项目上(从VCS菜单)
shelve
stash
一个人会得到(在IntelliJ IDEA 2019.2中)
k0pti3hp1#
git shelve在Git中不存在。仅限git stash:
git shelve
git stash
您有一个2008年的老项目git shelve来隔离分支中的修改,但现在这已经不是很有用了。如Intellij IDEA shelve dialog中所述,“搁置和取消搁置”功能没有链接到VCS(版本控制系统工具),而是链接到IDE本身,用于临时存储尚未提交到更改列表中的挂起更改。请注意,since Git 2.13 (Q2 2017), you now can stash individual files too .
sh7euo9m2#
在使用JetBrains IDE和Git时,除了搁置和取消搁置之外,还支持隐藏和取消隐藏操作。主要的区别在于补丁的生成和应用方式。Shelve可以处理单个文件或一组文件,而Stash只能同时处理一整组更改的文件。下面是它们之间的一些区别。”
tv6aics13#
除了前面的答案外,还有一点对我来说很重要:shelve是JetBrains的产品特性(如WebStorm、PhpStorm、PyCharm等),它将搁置的文件放到.idea/shelf目录下。stash是git选项之一。它将隐藏的文件放在.git目录下。
WebStorm
PhpStorm
PyCharm
.idea/shelf
git
.git
yzuktlbb4#
如果不将更改共享到其他位置,我宁愿搁置更改而不是隐藏更改。
Stashing是git的一个特性,它不给予你选择特定的文件或文件中的修改。Shelving可以做到这一点,但这是IDE特有的特性,而不是git功能:
正如你所看到的,我可以选择指定哪些文件/行包含在我的shelve中,注意我不能用stashing来做这件事。请注意,在IDE中使用shelf可能会限制补丁的可移植性,因为这些更改不会存储在.git文件夹中。一些有用的链接:
k5hmc34c5#
Shelf是JetBrains的一个特性,而Stash是Git的一个特性。你可以切换到不同的分支,而不会提交和丢失工作。我个人的经验是使用Shelf。
pbwdgjma6#
Shelve是IntelliJ IDE的一个特性。Stash是Git的一个特性。更新版本的git还允许您使用git stash -pIMO,Shelve相对于Plain Stash的一个优势是能够shelve changes from multiple repos together
6条答案
按热度按时间k0pti3hp1#
git shelve
在Git中不存在。仅限
git stash
:您有一个2008年的老项目git shelve来隔离分支中的修改,但现在这已经不是很有用了。
如Intellij IDEA shelve dialog中所述,“搁置和取消搁置”功能没有链接到VCS(版本控制系统工具),而是链接到IDE本身,用于临时存储尚未提交到更改列表中的挂起更改。
请注意,since Git 2.13 (Q2 2017), you now can stash individual files too .
sh7euo9m2#
在使用JetBrains IDE和Git时,除了搁置和取消搁置之外,还支持隐藏和取消隐藏操作。主要的区别在于补丁的生成和应用方式。Shelve可以处理单个文件或一组文件,而Stash只能同时处理一整组更改的文件。下面是它们之间的一些区别。”
tv6aics13#
除了前面的答案外,还有一点对我来说很重要:
shelve
是JetBrains的产品特性(如WebStorm
、PhpStorm
、PyCharm
等),它将搁置的文件放到.idea/shelf
目录下。stash
是git
选项之一。它将隐藏的文件放在.git
目录下。yzuktlbb4#
如果不将更改共享到其他位置,我宁愿搁置更改而不是隐藏更改。
Stashing是git的一个特性,它不给予你选择特定的文件或文件中的修改。Shelving可以做到这一点,但这是IDE特有的特性,而不是git功能:
正如你所看到的,我可以选择指定哪些文件/行包含在我的shelve中,注意我不能用stashing来做这件事。
请注意,在IDE中使用shelf可能会限制补丁的可移植性,因为这些更改不会存储在.git文件夹中。
一些有用的链接:
k5hmc34c5#
Shelf是JetBrains的一个特性,而Stash是Git的一个特性。你可以切换到不同的分支,而不会提交和丢失工作。我个人的经验是使用Shelf。
pbwdgjma6#
Shelve是IntelliJ IDE的一个特性。Stash是Git的一个特性。更新版本的git还允许您使用
git stash -p
IMO,Shelve相对于Plain Stash的一个优势是能够shelve changes from multiple repos together