Подтвердить что ты не робот

В чем разница между IntelliJ Shelve и Git stash?

IntelliJ поддерживает git stashes, а также собственную встроенную команду shelve. Они кажутся почти идентичными по назначению и полезности. В чем разница между ними?

4b9b3361

Ответ 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. Кроме того, при записи всех незафиксированных изменений, когда вы помещаете изменения на полку, вы можете выбрать некоторые локальные изменения вместо того, чтобы откладывать их все.