#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