Я думаю, вы не понимаете, что такое идея "ignore-space-at-eol" (конечно, иначе вы бы не спрашивали:)).
ignore-space-at-eol
- это опция стратегии слияния для recursive
стратегии слияния . Эти параметры применимы только к конфликтам (это важный бит!)
Предоставленный вами MWE создает ветку с дополнительными коммитами не на мастере, но мастер не имеет других коммитов ( так что в теории это можно было бы быстро переадресовать, но поскольку --no-ff
пройдено, этого не происходит).
Итак, в этом случае выполняется нормальное слияние. Все изменения не в master, а только в ветке объединяются в master. Поскольку нет никаких конфликтов, -Xignore-space-at-eol
не вступает в силу.
Это вступит в силу, если вы имели eol-whitespace-only-changes в обеих ветвях к одной и той же строке, а затем попытаетесь объединить ее, то есть:
$ git init
$ >file echo 'a'
$ git add file
$ git commit -m 'initial'
$ git branch feature # create a branch, but do not switch to it
$ >file echo 'a ' # add one blank
$ git add file ; git commit -m 'add one blank on master'
$ git checkout feature
$ >file echo 'a ' # add two blank
$ git add file ; git commit -m 'add two blanks branch'
$ git checkout master ; git merge feature # you will get conflicts
$ git merge --abort # let's try that again:
$ git merge -Xignore-space-at-eol feature # no conflicts, hooray!
Видите ли, ignore-space-at-eol
- это вариант стратегии, как обрабатывать конфликты. Это не означает, что такие изменения будут полностью проигнорированы.
Вариант использования: вы хотите объединить ветвь, которая не совпадает с окончанием строки или пробелом вашей ветки (представьте, что CRLF vs LF). С помощью этой опции стратегии вы можете автоматически разрешать такие конфликты и корректно объединять изменения.