используя vimdiff в git -merge, как я могу показать идентификаторы коммитов? - PullRequest
1 голос
/ 20 апреля 2020

Я делаю выборку, которая привела к конфликту слияния, и когда я его разрешаю, открывается инструмент слияния по умолчанию, Vimdiff. С 4 панелями, верхняя часть - локальная, базовая и удаленная. Однако я заметил, что у базы нет версии файла, которую я ожидал бы увидеть, если бы сделал git merge-base между локальной и удаленной фиксацией. Является ли это дефектом в git / vimdiff, как я могу увидеть, какой коммит отображается на базовой панели?

1 Ответ

1 голос
/ 20 апреля 2020

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...