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.