Git Шелве против Стэша
Я очень незнаком с аспектом shelve
в Git. Если stash
используется для того, чтобы отложить в сторону незаконченную работу, что же такое shelve
? Для чего ты это используешь?
Например, в обновлении проекта (из меню VCS)
![enter image description here]()
один получит (в идее 2019.2)
![enter image description here]()
Ответы
Ответ 1
git shelve
не существует в Git.
Только git stash
:
- когда вы хотите записать текущее состояние рабочего каталога и индекса, но хотите вернуться в чистый рабочий каталог.
- который сохраняет ваши локальные изменения и возвращает рабочий каталог в соответствие с коммитом HEAD.
У вас был старый проект 2008 года git shelve, чтобы изолировать изменения в ветке, но в наше время это не очень полезно.
Как задокументировано в диалоговом окне полки Intellij IDEA, функция "стеллажи и не полки" связана не с VCS (инструментом системы управления версиями), а с самой IDE для временного хранения ожидающих изменений Вы еще не внесены в список изменений.
Обратите внимание, что начиная с Git 2.13 (второй квартал 2017 года), теперь вы также можете хранить отдельные файлы.
Ответ 2
При использовании IDE JetBrains с Git в дополнение к стеллажам и снятию с охраны поддерживаются "блокировки и блокировки". Эти функции имеют много общего, главное отличие в том, как создаются и применяются исправления. Shelve может работать с либо отдельные файлы, либо кучу файлов, в то время как Stash может работать только с целой группой измененных файлов одновременно. Вот несколько подробнее о различиях между ними."
Ответ 3
В дополнение к предыдущим ответам есть одна важная для меня записка:
shelve
- это функция продуктов JetBrains (например, WebStorm
, PhpStorm
, PyCharm
и т.д.). Он помещает файлы в папку .idea/shelf
.
stash
является одним из параметров git
. Он помещает скрытые файлы в каталог .git
.