Как использовать команду Git Stash


10 советов, которые вы должны знать о Git Stash

Предположим, вы работаете над сложной функцией, требующей концентрации, и ваш босс поручает вам решить срочную проблему, а вы только что заметили, что финальное изменение для этой функции было реализовано в другой ветке.

В таком случае первая мысль, которая приходит вам в голову, — это сделать checkout в ветку, где есть реализованные функции.

Если вы попытаетесь выполнить checkout в другую ветку из нестадийной в стадийную модификацию, вы можете столкнуться со следующей проблемой:

Что произошло на скриншоте выше?

В этом случае к ветке, на которую вы перешли, будут применены как staged, так и unstaged модификации текущей ветки.

Далее, Git не всегда позволяет менять ветви без предварительной фиксации изменений. Это связано с возможностью потери изменений, сделанных в текущей ветке, или их столкновения с целевой веткой. По какой-то причине мы не можем перемещать ветви без предварительной фиксации или сохранения изменений.

Чтобы решить вышеупомянутую проблему, мы должны сохранить изменения в нашей рабочей среде. Сохранение означает надежное хранение изменений в скрытом месте (стеке хранения) для последующего использования.

Как сохранить изменения в тайнике?

Git stash сохраняет незафиксированные изменения локально, позволяя вам вносить изменения, переключать ветки и выполнять другие операции Git’а.

`git stash`
Вход в полноэкранный режим Выйти из полноэкранного режима

Или

git stash save
Войти в полноэкранный режим Выйти из полноэкранного режима

Как сохранить неотслеживаемые файлы?

Вы можете использовать дополнительные опции, чтобы позволить git stash позаботиться о неотслеживаемых и игнорируемых файлах.

  • Чтобы сохранить неотслеживаемые файлы:
`git stash -u`
Войдите в полноэкранный режим Выйти из полноэкранного режима

или

`git stash --include-untracked`
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Чтобы сохранить неотслеживаемые файлы и игнорируемые файлы:
`git stash -a`
Войдите в полноэкранный режим Выйти из полноэкранного режима

или

`git stash --all` 
Войти в полноэкранный режим Выйти из полноэкранного режима

Как вывести список тайников?

Вы можете просмотреть свои тайники с помощью команды git stash list. Тайники сохраняются по принципу «последний по порядку» (LIFO):

Как применить тайник?

Выполните следующую команду, чтобы применить записанные изменения вашего самого нового тайника к текущей рабочей ветке и удалить этот тайник из стека тайников:

`git stash pop`
Войти в полноэкранный режим Выйти из полноэкранного режима

Вы также можете захотеть применить ваш самый последний тайник к текущей рабочей ветке, не удаляя его из стека. Для этого выполните следующую команду:

`git stash apply`
Войти в полноэкранный режим Выйти из полноэкранного режима

Вы можете выбрать, какой тайник вы хотите открыть или применить, передав идентификатор в качестве последнего аргумента:

`git stash pop stash@{1}` 
Enter fullscreen mode Выйти из полноэкранного режима

Или

`git stash apply stash@{1} `
Ввести полноэкранный режим Выйти из полноэкранного режима

Как удалить тайник?

Хорошей практикой является удаление тайников, которые больше не нужны. Вы должны сделать это вручную с помощью следующих команд:

  • Чтобы очистить список тайников, удалив все тайники
`git stash clear`
Войдите в полноэкранный режим Выйти из полноэкранного режима
  • Чтобы удалить определенный тайник из списка тайников.
`git stash drop <stash_id>` 
Войти в полноэкранный режим Выйти из полноэкранного режима

Как создать ветку из тайника?

Можно создать новую ветку из вашего последнего тайника. Просто используйте эту команду:

git stash branch <branch_name>
Войти в полноэкранный режим Выйти из полноэкранного режима

Если вы хотите создать ветку из более раннего тайника, это также возможно с помощью ссылки на тайник:

git stash branch <branch_name> stash@{revision}
Войти в полноэкранный режим Выйти из полноэкранного режима

Как добавить описание к тайнику?

По умолчанию тайники помечаются как WIP поверх ветки и коммита, из которого вы создали тайник. Однако такое ограниченное количество информации не очень удобно, когда у вас несколько тайников, так как становится трудно запоминать или проверять их содержимое по отдельности. Чтобы добавить описание к тайнику, можно воспользоваться командой git stash save <description>:

git stash save "remove semi-colon from schema"
Saved working directory and index state On master: remove semi-colon from schema
Вход в полноэкранный режим Выйти из полноэкранного режима

Теперь, если вы перечислите все доступные тайники, вы увидите что-то похожее на это:

git stash list
stash@{0}: On master: remove semi-colon from schema
stash@{1}: WIP on master: d7435644 Feat: configure graphql endpoint
Вход в полноэкранный режим Выйти из полноэкранного режима

Как проверить разницу между тайниками?

Иногда вам может понадобиться просмотреть разницу между тайниками. Для просмотра разницы между тайниками используйте следующую команду:

git stash show <stash_id>
Войти в полноэкранный режим Выйти из полноэкранного режима
git stash show stash@{1}
console/console-init/ui/.graphqlrc.yml        |   4 +-
console/console-init/ui/generated-frontend.ts | 742 +++++++++---------
console/console-init/ui/package.json          |   2 +-
Войти в полноэкранный режим Выйти из полноэкранного режима

Вы также можете получить более подробный diff, передав флаг —patch или -p:

 git stash show stash@{0} --patch
Войти в полноэкранный режим Выйти из полноэкранного режима

Заключение

Надеюсь, вы нашли эту статью полезной и узнали что-то новое. Если я упустил какие-либо полезные опции для использования stash, пожалуйста, сообщите мне об этом в комментариях. Для быстрого ознакомления смотрите шпаргалку команд git stash

Оцените статью
devanswers.ru
Добавить комментарий