Как переместить файл, ошибочно добавленный в ветку / commit, в другую ветку / commit в Git?
У меня есть файл (driver_06_05_2015.view
) в ветке ServiceProvisionSpecialist_06_08_2015
этого не должно быть, и он был ошибочно предан этой ветке, хотя он должен быть в driver_06_05_2015
ветка.
Есть ли способ, которым я могу переместить только файл (не весь коммит) в ветку driver_06_05_2015, переписав историю (я думаю, когда люди говорят, что это относится к команде rebase...)
1 ответ
Обновление: с помощью rebase сейчас, как я увидел, вам нужно отредактировать второй до последнего коммита.
Вы можете использовать интерактивную перебазировку и переназначить родительский коммит того, который вы хотите отредактировать. В этом случае,
git rebase -i HEAD~2
В редакторе замени pick
с edit
в строке коммита, в которую добавлен файл, который вы хотите удалить. Затем закройте редактор.
Интерактивная перебазировка остановится на этом коммите, теперь вы можете редактировать:
git rm --cached socialMediaGenerator/src/driver_06_05_2015.view
git commit --amend
git rebase --continue
--cached
Опция позволяет вам удалить файл из Git, но сохранить его на вашем диске. Затем вы можете добавить его в другую ветку:
git checkout driver_06_05_2015
git add socialMediaGenerator/src/driver_06_05_2015.view
git commit -m "Add file driver_06_05_2015.view"