Как "исправить" Git Rerere разрешение

Мой рабочий процесс обычно состоит из merge -> resolve conflicts -> commit -> debug during compilation -> fixup commit, Таким образом, я делаю грязное слияние с очисткой потом. Если я включу rerere Я всегда записывал грязные резолюции. Как обойти эту проблему? Есть ли способ исправить rerere разрешение следующим коммитом?

2 ответа

Решение

Это неуклюже, но что я сделал для своего последнего большого плохого слияния.

Сначала я проверяю свою ветку до состояния слияния в ветке tmp. Затем запустите аналогичное слияние. Затем выполните следующий процесс:

for F in `git show $FIXCOMMIT --stat | awk '{print $1}' | tail -n +7 | head -n -1`; do
    git checkout -m $F
    git rerere forget $F
    cp $FIXED/$F ./$F
done

Где FIXCOMMIT - это фиксация с исправлениями. И FIXED - это рабочее дерево с состоянием FIXCOMMIT.

Как урок, я думаю, что не следует совершать слияние перед компиляцией.

Мой рабочий процесс обычно состоит из:

Внести изменения -> test -> commit -> внести дополнительные изменения -> test -> commit -> repeat.

Это дает мне несколько локальных коммитов, которые вместе составляют то, что нужно сделать. Когда я чувствую себя готовым, я бегу:

git rebase -i HEAD~[nr_of_commits_i_created]

И я обязательно исправлю все, кроме первого. Первый я оставляю как есть или перефразирую в последний раз. Теперь я получаю 1 коммит, содержащий все мои изменения. Я делаю ребаз в своей ветке master, решаю любые конфликты и проталкиваю свои изменения.

Таким образом, я никогда не сталкиваюсь со слиянием.

Я понимаю, что это не дает прямого ответа на ваш вопрос.

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