Ответ ниже от
Сергей Кузнецов, я его немного исправил.
Коммиты в гите неизменяемы. Если изначально родителя не было, то вы не прицепите его постфактум. Но вы можете пересадить ветку second на вершину master, пересобрав коммиты заново.
Чтобы получить что вам хочется, следует действовать иначе:
git fetch second # скачать все коммиты из второго репо
git switch second # перейти в ветку second
git rebase master --committer-date-is-author-date
# пересобрать ветку second с вершины ветки master
# с заменой даты создания коммита
# для удобного отображения в редакторах
dropping 0f6a3f0 third, "two" -- patch contents already upstream
Successfully rebased and updated refs/heads/second.
git switch master # вернуться в master
git merge second --no-ff # влить second в master
Получим:
git log --oneline --graph
* 13dddb5 (HEAD -> master) Merge branch 'second'
|\
| * 515f80e (second) fourth, "three"
|/
* d5c58d8 second, "two"
* fcc376b first, "one"
Коммит third, "two" исчез из истории (дропнут) во время rebase, так как он полностью повторяет состояние second, "two"
Но если вам надо действительно последовательную историю, то не надо создавать коммит слияния. Не используйте ключ --no-ff в последней команде. Это просто установит указатель master на вершину.
И получится линейная история
git log --oneline --graph
* 515f80e (HEAD -> master, second) fourth, "three"
* d5c58d8 second, "two"
* fcc376b first, "one"