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