Как перенести изменения из одного Git-хранилища в другое

GitGitBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git/DataManagementGroup -.-> git/stash("Save Changes Temporarily") git/DataManagementGroup -.-> git/restore("Revert Files") git/CollaborationandSharingGroup -.-> git/pull("Update & Merge") git/CollaborationandSharingGroup -.-> git/push("Update Remote") git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/stash -.-> lab-415014{{"Как перенести изменения из одного Git-хранилища в другое"}} git/restore -.-> lab-415014{{"Как перенести изменения из одного Git-хранилища в другое"}} git/pull -.-> lab-415014{{"Как перенести изменения из одного Git-хранилища в другое"}} git/push -.-> lab-415014{{"Как перенести изменения из одного Git-хранилища в другое"}} git/remote -.-> lab-415014{{"Как перенести изменения из одного Git-хранилища в другое"}} end

Введение в Git Stash

Что такое Git Stash?

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

Когда использовать Git Stash?

Вы можете использовать Git Stash в следующих сценариях:

  • Переключение веток: Когда вам нужно переключиться на другую ветку, но у вас есть локальные изменения, которые вы еще не хотите коммитить.
  • Получение обновлений: Когда вам нужно получить последние изменения из удаленного репозитория, но у вас есть локальные изменения, которые вы еще не хотите коммитить.
  • Экспериментация с кодом: Когда вы хотите протестировать новую функцию или экспериментировать с некоторым кодом, но вы не хотите коммитить свои изменения, пока не будете довольны результатом.

Как использовать Git Stash?

Для использования Git Stash вы можете следовать следующим шагам:

  1. Сохраните свои изменения: Запустите следующую команду, чтобы сохранить локальные изменения в хранилище:
    git stash
  2. Переключитесь на другую ветку: Теперь вы можете переключиться на другую ветку или получить последние изменения из удаленного репозитория.
  3. Восстановите сохраненные изменения: Когда вы готовы вернуться к своей предыдущей работе, вы можете применить сохраненные изменения с помощью следующей команды:
    git stash apply
    Это применит наиболее недавнее хранилище к вашей текущей ветке.

Управление хранилищем

Git Stash предоставляет несколько команд, которые помогут вам управлять сохраненными изменениями:

  • git stash list: Показать все созданные вами хранилища.
  • git stash show: Показать изменения, внесенные в конкретном хранилище.
  • git stash drop: Удалить конкретное хранилище из списка.
  • git stash clear: Удалить все хранилища из списка.

Поняв основы Git Stash, вы можете эффективно управлять своими локальными изменениями и переключаться между разными задачами или ветками, не теряя свою работу.

Перемещение сохраненных изменений

Перемещение сохраненных изменений на другую ветку

Иногда вы можете захотеть перенести свои сохраненные изменения на другую ветку. Это может быть полезно, если вы сохранили некоторые изменения, но понимаете, что эти изменения должны быть применены к другой ветке. Вот, как вы можете это сделать:

  1. Сохраните свои изменения:
    git stash
  2. Переключитесь на целевую ветку:
    git checkout target-branch
  3. Примените сохраненные изменения к целевой ветке:
    git stash apply

Теперь ваши сохраненные изменения были перенесены на целевую ветку.

Применение сохраненных изменений к нескольким веткам

Вы также можете применить свои сохраненные изменения к нескольким веткам. Это может быть полезно, если у вас есть набор изменений, которые вы хотите применить к нескольким веткам.

  1. Сохраните свои изменения:
    git stash
  2. Примените сохраненные изменения к первой ветке:
    git checkout branch1
    git stash apply
  3. Примените сохраненные изменения ко второй ветке:
    git checkout branch2
    git stash apply
  4. Повторите шаг 3 для любых дополнительных веток, к которым вы хотите применить изменения.

Перемещение сохраненных изменений с конфликтами

Если возникают конфликты при применении сохраненных изменений к другой ветке, вы можете их разрешить вручную. Вот, как:

  1. Сохраните свои изменения:
    git stash
  2. Переключитесь на целевую ветку:
    git checkout target-branch
  3. Примените сохраненные изменения:
    git stash apply
  4. Разрешите любые возникающие конфликты, затем добавьте разрешённые файлы:
    git add resolved-file1 resolved-file2
  5. Продолжайте применение хранилища:
    git stash apply --continue

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

Практическое управление хранилищем

Именование и ссылка на хранилище

Когда вы сохраняете свои изменения в хранилище, Git автоматически назначает уникальный идентификатор каждому хранилищу. Однако вы также можете дать более информативные имена своим хранилищам, чтобы легче отслеживать их. Вот как:

git stash save "My feature changes"

Затем вы можете ссылаться на ваши хранилища по их индексу или по имени, которое вы присвоили:

git stash apply stash@{2}
git stash apply "My feature changes"

Создание ветки из хранилища

Git Stash также позволяет создать новую ветку из сохраненных изменений. Это может быть полезно, когда вы хотите работать над определенным набором изменений в изоляции. Вот как:

git stash branch new-feature

Эта команда создаст новую ветку с именем new-feature и применит к ней наиболее недавнее хранилище.

Очистка хранилища

При работе список ваших хранилищ может быстро заполниться. Чтобы держать его в порядке, вы можете использовать следующие команды:

git stash list  ## Показать все хранилища
git stash drop stash@{0}  ## Удалить наиболее недавнее хранилище
git stash clear  ## Удалить все хранилища

此外, вы можете настроить Git для автоматического удаления старых хранилищ:

git config --global stash.autoStash true
git config --global stash.maxStashSize 10

Эти настройки автоматически сохранят ваши изменения перед слиянием или ребейсом и сохранят не более 10 хранилищ в списке.

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

Резюме

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