Почему Git Windows совершает слияние, даже если merge.commit = no? - PullRequest
0 голосов
/ 30 мая 2020

Я использую Git Bash в Windows 10, версия: git version 2.25.1.windows.1. Дайте мне знать, если мне нужно уточнить c. Я также использую GitExtensions, но мой вопрос касается слияния с Git Bash.

Когда я сливаюсь оттуда, то есть:

git merge feature-branch-name

, он фиксируется, хотя, насколько я могу судить, все три моих файла конфигурации Git устанавливаются иначе. Я знаю, что могу указать --no-commit в команде, но я бы не хотел этого делать.

Из каталога исходного кода git config --list выводит результат ниже, где он показывает в три раза больше merge.commit=no.

diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=false
core.fscache=true
core.symlinks=false
core.editor="C:\\Program Files\\Notepad++\\notepad++.exe" -multiInst -notabbar -nosession -noPlugin
credential.helper=manager
merge.ff=no
merge.commit=no
core.editor="C:/Program Files (x86)/GitExtensions/GitExtensions.exe" fileeditor
user.email=craig@wereallconnected.ca
user.name=Craig Silver
merge.tool=winmerge
merge.ff=no
merge.commit=no
mergetool.winmerge.path=C:/Program Files (x86)/WinMerge/winmergeu.exe
mergetool.winmerge.cmd="C:/Program Files (x86)/WinMerge/winmergeu.exe" -e -u  -wl -wr -fm -dl "Mine: $LOCAL" -dm "Merged: $BASE" -dr "Theirs: $REMOTE" "$LOCAL" "$BASE" "$REMOTE" -o "$MERGED"
pull.rebase=false
fetch.prune=false
rebase.autostash=false
diff.guitool=winmerge
difftool.winmerge.path=C:/Program Files (x86)/WinMerge/winmergeu.exe
difftool.winmerge.cmd="C:/Program Files (x86)/WinMerge/winmergeu.exe" -e -u "$LOCAL" "$REMOTE"
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.sshcommand=ssh
merge.ff=no
merge.commit=no
submodule.active=.
remote.origin.url=REMOVED
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.puttykeyfile=REMOVED
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.FMS-1203_data-structures-algorithms-string-matching.remote=origin
branch.FMS-1203_data-structures-algorithms-string-matching.merge=refs/heads/FMS-1203_data-structures-algorithms-string-matching
branch.FMS-1205_recency-trumps-frequency-for-small-fr-diff.remote=origin
branch.FMS-1205_recency-trumps-frequency-for-small-fr-diff.merge=refs/heads/FMS-1205_recency-trumps-frequency-for-small-fr-diff
branch.FMS-1204_debug-window.remote=origin
branch.FMS-1204_debug-window.merge=refs/heads/FMS-1204_debug-window

Кроме того, git config --get merge.commit выводит no.

К вашему сведению, GitExtensions ведет себя правильно: слияние там не фиксируется.

Что мне не хватает?

1 Ответ

1 голос
/ 30 мая 2020

Насколько я понимаю - нет опции merge.commit, которую вы можете установить, только merge.ff. См. https://git-scm.com/docs/git-merge#_configuration.

Что вы можете сделать, так это объявить псевдоним, который запускает слияние с желаемой опцией

git config alias.mr 'merge --no-commit'
...