vimdiff не знает фиксации базы слияния ha sh ID; Git не сообщает vimdiff, что это такое. На самом деле, идентификатор ha sh нигде не виден : Git хранит его в секрете.
Однако вы начали текст вашего вопроса с этого текста:
Я делаю выбор вишни
, чтобы вы могли легко найти базовый коммит со слиянием ha sh ID: это родительский коммит, который вы выбираете вишней.
Является ли это дефектом в git / vimdiff ...
Я полагаю, что это вопрос мнения. (Я действительно вроде wi sh Git оставил файл MERGE_BASE_HEAD
или что-то подобное - сам vimdiff все равно не увидел бы его, но вы могли бы написать сценарии vim, чтобы показать его, или просто запустить git rev-parse
в другом окне или после приостановки работы редактора.)
... если сделал git объединение базы данных между локальной и удаленной фиксацией
Это, вероятно, даст вам другой коммит. Cherry-pick работает, искусственно заставляя базовый коммит слияния быть (единственным) родителем коммита, который будет выбран:
...--*--o--P--C--o--o <-- some-branch
\
A--B <-- your-branch (HEAD)
Если в этот момент вы запускаете git cherry-pick <hash-of-C>
, «база слияния» "для этого слияния - commit P
, а не commit *
.
Выполнение git merge-base your-branch some-branch
сообщит ha sh ID commit *
, но это не база слияния этого объединения действие. Git необходимо принять изменения от P
до B
как "ваши изменения", чтобы применить их к P
, и объединить их с их изменениями от P
до C
.