Каковы реальные преимущества команды stash?
Я наткнулся на stash
команда в git, и я действительно не понимаю преимуществ такой команды.
Предположим, я создал некоторые временные изменения в foo_branch
и я хочу оформить заказ на bar_branch
, Моя обычная практика - создавать коммит с temp commit
сообщение в foo_branch
, а затем выполнить проверку на bar_branch
, Тогда, если я хочу вернуться к foo_branch
Я выполняю проверку и отменяю последний коммит (сохраняя изменения) foo_branch
Затем я продолжаю работать.
По моему мнению, stash
команда это просто еще один способ сделать такую вещь.
Каковы реальные преимущества stash
команда? Может быть, это просто ярлык для такого случая?
5 ответов
stash
Команда может сохранить текущее состояние индекса, рабочего каталога и неотслеживаемых файлов. Это просто намного быстрее бежать git stash
чем решить, какие изменения добавить в промежуточную область и зафиксировать с помощью сообщения фиксации.
Кроме того, тайник может быть применен в другом положении, чем он был изначально создан. Вы можете сделать это, временно зафиксировав текущую ветвь, переключившись на другую ветвь, выбрав вишню для вашего коммита, а затем удалив его с того места, где он был изначально создан.
Это просто быстрый способ получить чистый рабочий каталог, если вам нужно заняться чем-то другим.
Нет ничего плохого в вашем рабочем процессе. В git вы можете многого добиться, используя различный набор команд.
ИМО, вы можете увидеть stash как коммит, сделанный локально, без привязки к определенной ветке. То есть в ситуации, когда вы начали работу, вы можете сохранить свои изменения, получить новые изменения, обновить ветку, внести некоторые изменения, зафиксировать их и свободно поиграть с репозиторием git, а затем вытолкнуть сохраненную работу из stash. Или вы могли бы даже перенести свою работу в другую ветку.
Обычно я прячу изменения, которые мне часто нужны, и я не хочу каждый раз повторять их вручную.
Вариант использования: жестко закодированные учетные данные API для внутреннего использования. Я хочу использовать учетные данные своего пользователя, поэтому я изменяю их один раз и прячу изменения. В следующий раз, когда я проверяю ветку и мне нужно выполнить некоторые запросы API, я просто применяю тайник. (да-да, учетные данные должны быть в env vars, я знаю).
Или вы можете сделать то же самое для, скажем, отладочной печати в определенных местах. Они никогда не позволят вам совершить это. Но скорее всего, вам это понадобится снова.
Фиксация выполняется в два этапа: стадия и фактическая фиксация.
где Staging похож на удержание изменений и их сохранение в Git перед фиксацией изменений.
Постановка действительно важна, если вы внесли некоторые изменения, и вы все еще не хотите фиксировать их сейчас и хотите оформить заказ в конкретную ветку, поэтому эти изменения будут удалены, тогда мы должны подготовить их (сохранить локально в Git, чтобы зафиксировать позже)