git log
показывает следующее:
commit 1abcd[...]
Author: [...]
Date: [...]
[Useful commit]
commit 2abcd[...]
Author: [...]
Date: [...]
Merge branch [...] of [etc. etc.]
commit 3abcd[...]
Author: [...]
Date: [...]
[Useful commit]
Это объединение бесполезно для меня - оно не представляет значимого состояния ветки и генерируется из удаленного пула, поэтому у меня есть реальные ошибки удаленной истории - нет необходимости в фиксации, чтобы отметить факт что я потянул. Я хотел бы выкачать это слияние. Моя обычная техника для сквоша:
git rebase --interactive HEAD~2
(или еще далеко назад мне нужно идти)
И затем я бы раздавил его в соседний коммит. Я делаю это несколько раз, если, например, я делаю фиксацию, понимаю, что я пропустил крошечную важную деталь (один файл или не изменил строку в одном из файлов), и сделайте еще одно коммитирование, которое в основном просто быстро. Таким образом, когда я подталкиваю свои изменения обратно к пульту дистанционного управления, все хорошо и чисто, и говорит сплоченный рассказ.
Однако в этом случае, когда я запускаю команду git rebase ...
, commit 2abcd
не появляется! Похоже, что он пропущен над 2abcd
и вместо этого отображает 1abcd
и 3abcd
. Есть ли что-то особенное в фиксации слияния, которое мешает ему появляться в git rebase --interactive
? Какую еще технику я мог бы использовать для сквоша этого коммита?
ОБНОВЛЕНИЕ за запрос @Cupcake:
Вывод git log --graph --oneline --decorate
выглядит следующим образом:
* 1abcd (useful commit)
* 2abcd (merge)
| \ <-- from remote
| * 3abcd (useful commit)
| |
Полезно?