2013-06-26 2 views
34

У меня есть две ветки, которые имеют очень мало похожих истории, но связаны друг с другом.git create commit from diff между двумя ветвями

Я хочу, чтобы изменения между этими двумя в один git commit.

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

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

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 

ответ

64

Простой способ сделать это:

- create and checkout branch tmp at branch_a 
- reset --soft to branch_b 
- commit 

, что совершают должны иметь все диф

+1

Вам не нужна общая фиксация или даже касание ветвей спереди. просто попробуйте сделать это в gitk - по мере того, как вы экспериментируете на новой ветке, которая уйдет в любом случае, у вас есть бесплатный прогон. –

+0

Работал для меня с помощью git 1.7.9.5 – wischan

+1

Не могли бы вы показать пример? Благодаря ! – Charaf

-3

См git apply --index. Вот почему он ничего не делает.

Кроме того, убедитесь, что вы находитесь в корневом каталоге, поэтому .git должен быть там.