IntelliJ поддерживает git stash, а также собственную встроенную команду shelve. Они кажутся почти идентичными по назначению и полезности. В чем разница между ними?
IntelliJ поддерживает git stash, а также собственную встроенную команду shelve. Они кажутся почти идентичными по назначению и полезности. В чем разница между ними?
Ответы:
Из документации IntelliJ :
В интеграции с Git, помимо складирования и снятия с полок, поддерживаются «спрятать» и «откладывать» соответственно. У этих функций много общего, разница только в способе создания и применения исправлений.
- Патчи с сохраненными изменениями генерируются самим Git. Чтобы применить их позже, вам не нужна IntelliJ IDEA.
- Патчи с отложенными изменениями генерируются IntelliJ IDEA. Обычно они также применяются через IDE. Применение отложенных изменений вне IntelliJ IDEA также возможно, но требует дополнительных действий.
git stash push.
Они очень похожи, за исключением:
К тому же, IMHO, полка работает немного быстрее, особенно в большом проекте, когда было изменено много файлов.
См. Документацию для получения дополнительной информации.
git stash -- foo/bar.txt
Одно явное преимущество, которое имеет Intellij Shelve по сравнению с обычным хранилищем Git, заключается в том, что с помощью Shelve вы можете сохранять изменения, принадлежащие нескольким репозиториям, в одном списке изменений. Используя stash, вам нужно будет спрятать / распаковать в каждом репо отдельно. Это очень полезно в большом проекте с несколькими модулями (каждый из которых имеет собственное репо), где работа конкретной функции может затрагивать несколько модулей (и, следовательно, несколько репозиториев).
Вот что говорится в документации
Хранение изменений очень похоже на стеллажи. Единственная разница заключается в способе создания и применения исправлений. Тайники создаются Git и могут применяться как в IntelliJ IDEA, так и за ее пределами. Патчи с отложенными изменениями генерируются IntelliJ IDEA, а также применяются через IDE. Кроме того, хранение включает в себя все незафиксированные изменения, а когда вы помещаете изменения на полку, вы можете выбрать некоторые из локальных изменений вместо того, чтобы откладывать их все.