мерзавец создает фиксацию из разности между двумя ответвлениями

У меня есть два ответвления, которые имеют очень мало подобной истории, но связаны друг с другом.

Я хочу изменения между теми двумя в одной фиксации мерзавца.

файлы были удалены и созданы между теми патчами, и я хочу, чтобы патч отразил это

т.е.: следующий материал не будет работать:

git diff branch_a branch_b -- > patchfile
git checkout branch_b
git apply patchfile # deletes and adds are ignored
git commit # we miss the deletes
58
задан 26 June 2013 в 19:44

1 ответ

Все это сводится git reset --soft branch_b сверх временного ответвления на основе branch_a и результата, фиксировавшего назад branch_b.

Это - пошаговый обход посредством процесса:

#Start out on the branch with the code we want
git checkout branch_a

#create tmp branch same as branch_a (so that we don't change our local branch_a state during the operation)
git branch tmp

#working directory has all the code that we want, on tmp branch
git checkout tmp

# Change the branch head to the branch we want to be on. All the delta
# between the current source code and branch_b is now staged for commit
git reset --soft branch_b

# Move away from tmp, so our commit will go directly to branch_b
git checkout branch_b

# Now you can examine the proposed commit
git status

# Add the delta we want to the branch
git commit

# Sanity check that the branches have the same content now (should return an empty line)
git diff branch_A..branch_b

# Remove tmp, we don't need it anymore
git branch -D tmp
2
ответ дан 1 November 2019 в 14:12

Другие вопросы по тегам:

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