Слить только некоторые изменения из ветки в мастер - PullRequest
0 голосов
/ 10 июля 2020

Я недавно работал над приложением, но я новичок как в веб-разработке, так и в git. Мое приложение становится довольно большим, поэтому его загрузка занимает около 2 минут, что затрудняет тестирование небольших изменений. Учитывая, что я думал о работе с веткой, где я загружаю только одно представление, что упростило мою работу. Есть два важных файла:

  • index.py: здесь master загружает все представления. Это файл, который я запускаю при запуске приложения. В моей новой ветке я модифицирую его, чтобы он загружал только relevant_view.py. Когда я объединяю new_branch с master, я хочу сохранить главную версию.
  • relevant_view.py: Соответствующее представление. Изменения, которые я вношу здесь в new_branch, я хочу объединить с master.

Итак, для master я хочу обновить его с помощью relevant_view.py изменений, которые я сделал на new_branch, но оставьте index.py таким, каким он был изначально.

Для new_branch я хотел бы сохранить оба изменения index.py и relevant_view.py, которые я внес в этой ветке.

Мне удается только принести оба изменения в мастер, что заставляет меня вручную отменить указанные изменения на index.py. Каким будет путь к go? Спасибо, и скажите, пожалуйста, если я не очень хорошо объясняюсь. Если есть другой передовой метод, который мне не хватает для решения такого рода проблем, сообщите и мне.

1 Ответ

1 голос
/ 10 июля 2020

Попробуйте сделать что-то вроде этого

Находясь в ветке new_branch, запустите следующее:

git checkout -b new_branch_to_merge

Это создаст новую ветку с именем new_branch_to_merge, в которой HEAD указатель будет указывать на ту же фиксацию, что и указатель HEAD для new_branch.

Затем, предполагая, что вы еще не добавили изменения для relevant_view.py, добавьте и зафиксируйте их:

git add relevant_view.py
git commit -m "adding changes to relevant_view.py"

Затем вы можете использовать git stash push, чтобы скрыть изменения в index.py

git stash push

Затем объедините new_branch_to_merge с master

git checkout master
git merge new_branch_to_merge

Сейчас , ваша ветка master опережает new_branch на одну фиксацию. Чтобы решить эту проблему, выполните следующие команды, чтобы убедиться, что значение HEAD для new_branch указывает на ту же фиксацию, что и для master

git checkout new_branch
git merge --ff-only master

Затем, чтобы добавить изменения в index.py в рабочий каталог на new_branch, запустите следующее:

git stash pop

Сообщите мне, если это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...