Если у вас есть опыт работы с Git очень часто, вы должны знать, что у вас может быть несколько веток в одном репозитории проекта Git. Однако глава репозитория вашего проекта всегда указывает на вашу недавно совершенную ветку. Это означает, что вы можете вносить изменения только в ту ветку, на которую указывает голова в вашем репозитории проекта Git. Но иногда бывает, что вы работаете над одной веткой и понимаете, что вам нужно добавить что-то в ранее зафиксированную ветку. Кроме того, вы еще не хотите коммитить ветку, над которой вы сейчас работаете, поскольку вы все еще хотите работать над ней.
Итак, вы начинаете изучать решения, с помощью которых вы можете на некоторое время переключать свой контекст, для которого данные вашей текущей рабочей ветки также временно сохраняются без фиксации. Команда «git stash» действует как скрытое благословение в таких ситуациях. Единственная цель использования этой команды – временно сохранить изменения без их фиксации, пока вы можете работать с некоторой ранее зафиксированной веткой. После этого вы можете просто вернуться к своей текущей ветке, восстановив сохраненную работу. Чтобы объяснить вам использование команды «git stash» в Ubuntu 20.04, мы разработали следующий полезный, но простой учебник, с помощью которого вы можете легко понять, как работает «git stash».
Хранение буквально означает временное хранение чего-либо. Для использования команды «git stash» в Ubuntu 20.04 мы использовали тестовый репозиторий с именем simplegit-progit. Точная последовательность шагов обсуждается ниже:
Во-первых, нам нужно перейти в каталог, в котором находится наш проект Git. Для этого мы можем использовать следующую команду:
cd /home/andreyex/simplegit-progit
Здесь вы можете указать любой путь из вашей системы Ubuntu 20.04, где находится ваш соответствующий репозиторий проекта Git. На изображении ниже вы можете легко увидеть, что путь к нашему терминалу теперь указывает на наш репозиторий проекта Git.
Теперь, чтобы продемонстрировать назначение и использование команды «git stash» в Ubuntu 20.04, мы внесем некоторые случайные изменения в наш репозиторий проектов Git. Сначала мы создали в этом каталоге новый текстовый файл с именем Stash1.txt, выполнив следующую команду:
sudo nano Stash1.txt
После выполнения этой команды мы введем случайный текст в наш файл, после чего мы сможем сохранить и закрыть его.
Затем мы создали еще один текстовый файл в том же репозитории проекта с именем Stash2.txt, введя следующую команду:
sudo nano Stash2.txt
После этого мы просто ввели случайный текст в этот файл, как показано на изображении ниже. Затем мы сохранили и закрыли наш текстовый файл.
Теперь нам нужно повторно инициализировать наш репозиторий проекта Git с помощью следующей команды:
git init
Как только Git удастся повторно инициализировать репозиторий вашего проекта, он отобразит на терминале сообщение.
Теперь нам нужно добавить только что сделанные изменения, то есть два текстовых файла, которые мы создали, в наш репозиторий проекта Git с помощью следующей команды:
git add.
Если ваши недавно внесенные изменения успешно добавлены в репозиторий проекта Git, ваш терминал не будет отображать никаких сообщений об ошибках.
Теперь нам нужно проверить статус Git. В идеале в этом статусе мы должны иметь возможность видеть все изменения, которые нужно зафиксировать, то есть имена двух только что созданных текстовых файлов. Статус Git можно проверить с помощью следующей команды:
git status
Вы можете легко увидеть из выделенного участка изображения, показанного ниже, что два вновь созданных текстовых файла на самом деле являются изменениями, которые должны быть зафиксированы следующими.
Затем наступает время выполнения команды «git stash», поскольку вместо фиксации новых изменений мы хотим временно сохранить их. Команду «git stash» можно использовать следующим образом:
git stash
Если эта команда работает успешно, на терминале отобразится сообщение о том, что ваш рабочий каталог был сохранен.
Если наши изменения были успешно сохранены, то проверка статуса Git покажет, что на данный момент нет изменений, которые нужно зафиксировать.
Теперь, когда вам захочется еще раз поработать со своими сохраненными изменениями, например, вы можете захотеть их зафиксировать, тогда вы должны сначала восстановить их с помощью команды, указанной ниже:
git stash pop
После выполнения этой команды вы заметите, что изменения, которые вы ранее внесли в репозиторий проекта Git, которые были сохранены ранее, теперь готовы к фиксации.
Команда «git stash» – чрезвычайно полезная и часто используемая команда в среде Git. Он не только временно сохраняет текущую рабочую ветвь, но также позволяет вам очень удобно работать с любой из ваших ранее зафиксированных веток. После выполнения всех желаемых операций с вашими ранее зафиксированными ветвями вы можете просто использовать команду «git stash pop» для возврата к текущей рабочей ветке.