Как "исправить" 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, решаю любые конфликты и проталкиваю свои изменения.
Таким образом, я никогда не сталкиваюсь со слиянием.
Я понимаю, что это не дает прямого ответа на ваш вопрос.