IntelliJ поддерживает git stashes, а также собственную встроенную команду shelve. Они кажутся почти идентичными по назначению и полезности. В чем разница между ними?
В чем разница между IntelliJ Shelve и Git stash?
Ответ 1
В документации IntelliJ :
В интеграции Git, помимо стеллажей и обезвреживания, поддерживаются "запирание" и "неустановление". Эти функции имеют много общего, единственное отличие заключается в том, как создаются и применяются исправления.
- Патчи со скрытыми изменениями генерируются самим Git. Чтобы применить их позже, вам не нужна IntelliJ IDEA.
- Патчи с отложенными изменениями генерируются IntelliJ IDEA. Как правило, они также применяются через IDE. Применение отложенных изменений вне IntelliJ IDEA также возможно, но требует дополнительных шагов.
Ответ 2
Они довольно похожи, кроме:
- Вы не можете использовать полку вне IDE, потому что это функция Intellij.
- Git stash работает только со всей рабочей директорией и индексом. IntelliJ shelve может работать с отдельными файлами и списками изменений (еще одна функция IntelliJ). Как вы можете видеть, например, здесь, иногда это необходимо.
- Идея имеет лучшую встроенную поддержку для полки. Работа с git stash более проста. В частности, вы можете отложить \unhelve свои изменения или просмотреть файлы с полками из окна инструмента управления версиями.
Кроме того, IMHO, полка работает немного быстрее, особенно в большом проекте, когда было изменено множество файлов.
Дополнительную информацию см. в документации .
Ответ 3
Одно отличное преимущество, заключающееся в том, что Intellij Shelve имеет более простой Git stash, заключается в том, что с помощью Shelve вы можете сохранять изменения, принадлежащие нескольким репозиториям, в одном списке изменений. Используя stash, вам нужно будет спрятать/размять в каждом репо отдельно. Это очень полезно в большом проекте с несколькими модулями (каждый из которых имеет свое собственное репо), где конкретная работа с функциями может пересекать несколько модулей (и, следовательно, несколько репозиций)
Ответ 4
Вот что говорит Документация
Сменные изменения очень похожи на стеллажи. Единственное различие заключается в том, как создаются и применяются исправления. Штамты генерируются Git и могут применяться из IntelliJ IDEA или вне его. Патчи с отложенными изменениями генерируются IntelliJ IDEA и также применяются через IDE. Кроме того, при записи всех незафиксированных изменений, когда вы помещаете изменения на полку, вы можете выбрать некоторые локальные изменения вместо того, чтобы откладывать их все.