Задать вопрос
@Xtone

Как вынести изменения в отдельную ветку?

У меня часто такая ситуация бывает что одна ветка слишком разрастается, в ней накапливается много полезного, но не относящегося к задаче рефакторинга (просто по мере того как разбираю какой-то старый чужой код - для понятности вношу мелкие правки). Потом когда меня кто-то ревьюит - говорят что неудобно, слишком много изменений. Но отменять их не хочется. Вопрос такой: как с удобством вынести часть изменений в отдельную ветку? Просто последний раз когда я такое пытался сделать я создал отдельно копию проекта и по файлу копировал содержимое. Но это очень неудобно... Может есть какой-то более простой способ? Либо через интерфейс Гитхаба, либо через Андроид Студию, либо через что-то еще...
  • Вопрос задан
  • 245 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Ну так создайте ещё одну ветку и вынесите туда только часть изменений. Например, через cherry-pick отдельных коммитов с предыдущей ветки. Либо через soft reset собрать новую ветку, оставив только нужное.

по файлу копировал содержимое
Гит как раз и был придуман, чтобы не делать такое.

Либо через интерфейс Гитхаба, либо через Андроид Студию
Studio это отличный Git-клиент — работайте там.
Ответ написан
Комментировать
@Xtone Автор вопроса
Разобрался как это делается. Для этого придуманы патчи в студии.

1. Находясь в своей ветке тыкнул в списке веток по мастеру и "show diff with working tree".
2. Видя дифф мастера и своей ветки по очереди отменил те файлы которые надо перенести и закоммитил (можно без отправки на сервер).
3. Тыкнул по новому коммиту и сделал его revert (обратный от него коммит).
4. Тыкнул по прошлому коммиту и сделал reset до него с сохранением изменений в файлах (soft).
5. Создал патч из локальных изменений (Git/Patch/Create patch from local changes). Это просто один файл в который скидываются все правки и его удобно переносить.
6. По желанию отменяю еще коммит, который отменил мой рефакторинг.
7. Перехожу в мастер, создаю новую ветку и применяю патч.
8. Создаю Pull Request из новой ветки, жду ревью рефакторинга, вливаю в мастер.
9. Вливаю мастер в свою первую ветку и наслаждаюсь тем что правок там стало намного меньше.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы