Я прочитал документацию о git merge --no-ff.git log after git merge --no-ff показывает, что все коммиты с другой ветки объединены
Я попробовал и результат:
Mini-de-MiniMac:ZtestGit minimac$ git branch
feature
* master
Mini-de-MiniMac:ZtestGit minimac$ git log --pretty=oneline
82307080064b764c28622351a4c28abb4f9302b8 Merge branch 'feature' with --no-ff option
50d9f108d70798a13cc25fb7321d57ad5ba61854 three
d7163bc5320162689544293be1ac2228c6e3dc34 two
a7ba4c797d49d940a7d64a8ddaba787eb013622a one
cc3e4abf5dfad7779de3837a6c4e6e29e3ca87b2 start
Mini-de-MiniMac:ZtestGit minimac$ git log --pretty=oneline --graph
* 82307080064b764c28622351a4c28abb4f9302b8 Merge branch 'feature' with --no-ff option
|\
| * 50d9f108d70798a13cc25fb7321d57ad5ba61854 three
| * d7163bc5320162689544293be1ac2228c6e3dc34 two
| * a7ba4c797d49d940a7d64a8ddaba787eb013622a one
|/
* cc3e4abf5dfad7779de3837a6c4e6e29e3ca87b2 start
Я удивлен, что я не понимаю: журнал мерзавца на мастер филиал показать все коммиты (один, два, три), но эти коммиты находятся в ветви признака, а не в качестве ведущего.
Я понимаю, что последняя фиксация на главной ветке является потомком цепочки предыдущих коммитов на ветке признаков. Я ожидал, что у меня будет сводка на главной ветке, и я увижу только первую и последнюю фиксацию на хозяине. Не могли бы вы объяснить мне, почему это другое?
Так что интерес к git merge --no-ff заключается в том, чтобы работать с git log -graph и не только с git log?
Я добавлю еще более странное явление: когда я удаляю ветвь функции, git говорит, что ветвь удалена, но git log и git log -graph дают точно такой же результат, как и раньше: фиксации и ветвь функции все еще отображаются.
У вас есть объяснение?
Mini-de-MiniMac:ZtestGit minimac$ git branch
feature
* master
Mini-de-MiniMac:ZtestGit minimac$ git log --pretty=oneline
82307080064b764c28622351a4c28abb4f9302b8 Merge branch 'feature' with --no-ff option
50d9f108d70798a13cc25fb7321d57ad5ba61854 three
d7163bc5320162689544293be1ac2228c6e3dc34 two
a7ba4c797d49d940a7d64a8ddaba787eb013622a one
cc3e4abf5dfad7779de3837a6c4e6e29e3ca87b2 start
Mini-de-MiniMac:ZtestGit minimac$ git log --pretty=oneline --graph
* 82307080064b764c28622351a4c28abb4f9302b8 Merge branch 'feature' with --no-ff option
|\
| * 50d9f108d70798a13cc25fb7321d57ad5ba61854 three
| * d7163bc5320162689544293be1ac2228c6e3dc34 two
| * a7ba4c797d49d940a7d64a8ddaba787eb013622a one
|/
* cc3e4abf5dfad7779de3837a6c4e6e29e3ca87b2 start
Mini-de-MiniMac:ZtestGit minimac$ git branch
feature
* master
Mini-de-MiniMac:ZtestGit minimac$ git branch -d feature
Deleted branch feature (was 50d9f10).
Mini-de-MiniMac:ZtestGit minimac$ git branch
* master
Mini-de-MiniMac:ZtestGit minimac$ git log --pretty=oneline
82307080064b764c28622351a4c28abb4f9302b8 Merge branch 'feature' with --no-ff option
50d9f108d70798a13cc25fb7321d57ad5ba61854 three
d7163bc5320162689544293be1ac2228c6e3dc34 two
a7ba4c797d49d940a7d64a8ddaba787eb013622a one
cc3e4abf5dfad7779de3837a6c4e6e29e3ca87b2 start
Mini-de-MiniMac:ZtestGit minimac$ git log --pretty=oneline --graph
* 82307080064b764c28622351a4c28abb4f9302b8 Merge branch 'feature' with --no-ff option
|\
| * 50d9f108d70798a13cc25fb7321d57ad5ba61854 three
| * d7163bc5320162689544293be1ac2228c6e3dc34 two
| * a7ba4c797d49d940a7d64a8ddaba787eb013622a one
|/
* cc3e4abf5dfad7779de3837a6c4e6e29e3ca87b2 start
Спасибо.
'git log --graph --decorate - all' может отображать более четкое изображение. –
'git merge --no-ff' заставляет создавать слияние, поэтому вы всегда увидите коммиты на другой ветке, так как они являются предками созданной фиксации. Неважно, существует ли другая ветвь - коммиты есть, потому что они достижимы. –
Если вам нужна только первая родительская история, скажите '- first-parent' – jthill