Работая над функцией в проекте, вы когда-нибудь чувствовали один из следующих сценариев?

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

Если да, то вам поможет команда git stash.

Что такое GitStash?

git stash временно сохраняет сделанные вами изменения (полки/тайники) в вашей рабочей копии. Это дает вам свободу работать над чем-то другим и повторно применять изменения, когда вы вернетесь.

Очаровательный!!!! Не так ли?

Давайте поймем больше, копнув глубже

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

Спрячьте свою работу

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

Я создал пример проекта и внес некоторые изменения.

Но я хочу, чтобы фиксация была до этого. Итак, я спрячу это изменение.

Вы можете видеть, что мои изменения отменяются после применения команды git stash.

Давайте сделаем коммит сейчас.

Теперь, когда мы сделали коммит. Вернем наши изменения.

Тайник Поп

Команда git stash pop возвращает ваши последние спрятанные изменения из git. Вернем наши изменения.

Вопросы и ответы

Вспоминая вашу цитату,

Простая команда git stash не затрагивает неотслеживаемые и игнорируемые файлы.

Что, если мне придется спрятать неотслеживаемые и игнорируемые файлы?

Этого можно добиться, используя флаги опций с командой git.

Добавление опции -u или --include-untracked с командой git stash будет включать неотслеживаемые файлы в хранилище.

и

Добавление опции -a или --all с командой git stash будет включать игнорируемые файлы при сохранении.

На приведенном ниже снимке экрана я создал два файла в нашем репо.

File3.txt -> Неотслеживаемый файл

Hello.txt -> Игнорируемый файл

Давайте спрячем оба файла, используя указанные выше параметры.

Я запускал команды (-u и -a) по отдельности, вместо этого вы можете запускать обе команды вместе ( git stash -u -a )

Вы сделали два тайника выше. Как я могу просмотреть все свои тайники вместе?

Команда git stash list отобразит историю тайников, хранящихся в репо.

Примечание. Эта команда не покажет вытащенный тайник.

Могу ли я увидеть изменения, внесенные в каждый тайник?

Да. Ты можешь. git stash show <stash_id> покажет изменения, сделанные в этом конкретном тайнике.

Я внес изменения в файл File1.txt.

Добавление флага опции -p к команде show покажет построчные изменения.

Есть ли возможность открыть определенный тайник? Скажем, средний предмет из тайника.

Да. Абсолютно можете.

Просто добавьте идентификатор тайника в конце команды stash pop.

После выполнения команды вы увидите, что средняя запись в тайнике была удалена.

Как сохранить тайник с сообщением? Мне было бы полезно быстро идентифицировать и использовать этот конкретный коммит в будущем.

Да. Ты прав. У нас есть способ в Git сохранить тайник с настроенным сообщением.

Команда git stash save <message> сохраняет запись тайника с настроенным сообщением. Вы можете заключить сообщение в двойные кавычки («»), если в вашем сообщении есть пробелы или специальные символы.

Мне нужно открыть запись в тайнике, но это не должно удалять запись из списка тайников. Возможно ли это?

Да. Это.

Вы можете добиться этого с помощью команды git stash apply. Эта команда применит изменения из этого тайника к вашему рабочему репозиторию и не удалит запись из списка тайников.

На приведенном выше снимке экрана видно, что последний тайник не был удален, а изменения, внесенные в этот тайник, перенесены в рабочий репозиторий.

Смогу ли я удалить определенную запись из тайника?

Да. Очевидно, вы можете. Если вы можете создать его, вы также можете удалить его.

Команда git stash drop поможет вам удалить запись из списка тайников. Просто запуск git stash drop удалит последнюю запись из списка тайников. Вы можете добавить stash-id с помощью команды drop, чтобы удалить конкретную запись.

Кончик

Если вы хотите удалить все записи тайника, вы можете сделать это, просто выполнив команду git stash clear.

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

Подпишитесь на нашу рассылку новостей, чтобы получать больше таких проницательных статей, которые будут доставлены прямо в ваш почтовый ящик.

Счастливого кодирования