git stash для сохранения текущего измененного файла

#git #github

#git #github

Вопрос:

Я внес пару изменений в ветку A. По какой-то причине я должен прекратить разработку этой функции в ветке A. У меня есть другая задача, для которой мне нужно создать новую ветку. Я знаю, что, выполнив git stash и pop, я могу сохранить текущие изменения и восстановить их позже, пока я могу делать все, что захочу, во вновь созданной ветке. Меня беспокоит то, безопасно ли это делать? У меня было изменено более 20 файлов, и я не хочу ничего терять.

Комментарии:

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

Ответ №1:

git stash следует считать безопасным; он сохранит незафиксированные / не загруженные файлы локально и позволит вам подготовиться к внесению дополнительных изменений в ветке A. Тайник хранится локально, поэтому существует риск того, что мертвый компьютер = мертвый тайник.

Подумайте, было бы уместно зафиксировать / отправить, а затем перейти в другую ветку. Если вы работаете над чем-то, что может быть развернуто отдельно, имеет смысл зафиксировать и отправить в ветку A. Если вы хотите перенести текущий код с собой в ветку B (чтобы развернуть предыдущий код и новый код, который будет написан в ветке B как единое целое), тогда сделайте stash.

Ответ №2:

Да — это совершенно безопасно и очень распространенная вещь.

Также, вероятно, почти так же просто просто создать ветку с вашими изменениями, ветвление в git — это очень легкая операция и, вероятно, даст вам немного больше гибкости, чем stash.

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

Комментарии:

1. Обычно я использую stash между перебазированиями, когда мне приходится переключаться на master, извлекать из origin, затем переключаться обратно на свою рабочую ветку и перебазировать (да, я знаю, что могу перебазироваться непосредственно в origin / master, но мне нравится сначала извлекать). это для оперативной работы, которую было бы бессмысленно выполнять, пока у меня не появятся изменения в master, то есть изменения в этом файле или API или что-то еще из другой ветки.

Ответ №3:

Да, здесь безопасно использовать stash команду

Чтобы быть вдвойне уверенным в своей работе, вы можете использовать

 git stash apply
  

Вместо использования git stash pop вы можете использовать git stash apply .
Что git stash pop делает, так это то, что он выбрасывает stash после его использования.
Но git stash apply сохраняет тайник в списке тайников для последующего использования, если потребуется. И в случае, если вы хотите удалить этот самый последний stash, вы можете сделать это с помощью git stash drop .

Комментарии:

1. Git stash save устарел с версии git 2.21.0 в пользу git stash push