В своем приложении я работаю над веткой под названием v4.0.

В этой ветке я внес изменения в 13-14 файлов, которые не были размещены, и через некоторое время я понял, что мне нужно было сделать это на v4.0.1, это произошло по ошибке. Изменения в версии 4.0 не проходят этап.

Есть ли способ перенести все изменения в v4.0.1, которые я создал из v4.0, без постановки этих изменений в v4.0.

git
1
Yash Jain 25 Сен 2018 в 12:22

2 ответа

Лучший ответ

Предположим, вы знаете, что постановка отличается от фиксации, вы можете попробовать извлечь разницу и применить ее позже:

Сначала извлеките diff (убедитесь, что файл diff находится за пределами вашего репозитория или игнорируется в .gitignore):

git diff > ../unstaged.diff

Затем отбросьте неустановленные изменения:

git stash save --keep-index --include-untracked

Проверьте целевую ветку и примените разницу:

git checkout v4.0.1
git apply ../unstaged.diff
3
iBug 25 Сен 2018 в 09:28

Да, есть разные способы добиться желаемого. Вы можете сохранить изменения и поместить их в нужную ветку: v4.0.1.

Предполагая, что вы находитесь в ветке v4.0 со своими неустановленными изменениями, выполните следующие команды:

    git stash -u
    git checkout v4.0.1
    git stash pop

Затем вы можете подготовить свои изменения и зафиксировать их в ветке v4.0.1.

Обратите внимание, что параметр -u необходим только в том случае, если в вашей рабочей области есть неотслеживаемые файлы.

4
Romain Warnan 25 Сен 2018 в 09:41