Как переместить файл, ошибочно добавленный в ветку / 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"
Другие вопросы по тегам