git merge: удаление файлов, которые я хочу сохранить!

Как можно объединить две ветки в git, сохранивнеобходимо файлы из ветки?

При объединении двух ветвей, если файл был удален в одной ветви, а не в другой, файл в конечном итоге удаляется.

Например:

Файл существует в master, когда вы создаете новую веткувы удалите файл из мастера, так как мы неэто не нужно (пока)Вы вносите изменения в ветку, чтобы добавить функцию,который опирается на существующий файлвы делаете исправления ошибок в мастере (не может быть отброшено)Вы объединяетесь однажды, и файл исчез!

Как воспроизвести:

Создайте git-репо с одним файлом.

git init
echo "test" > test.txt
git add .
git commit -m "initial commit"

Создать ветку

git branch branchA

Удалить файл в мастере

git rm test.txt
git commit -m "removed file from master"

Внесите ЛЮБЫЕ изменения в веткуt коснуться удаленного файла (он должен быть неизменным, чтобы избежать конфликта)

git checkout branchA
touch something.txt
git add .
git commit -m "some branch changes"

Отсюда, как яОбнаружив, что эти две ветви объединены, файл test.txt удален. Предполагая, что мы былиопираясь на файл заbranchA, Это большая проблема.

Неудачные примеры:

Слияние 1

git checkout branchA
git merge master
ls test.txt

Слияние 2

git checkout master
git merge branchA
ls test.txt

Ребаз 1

git checkout branchA
git rebase master
ls test.txt

Ответы на вопрос(5)

Ваш ответ на вопрос