Почему мне дается три варианта при слиянии моего кода с чужим? Разве не должен быть только мой код, код другого человека и вывод ниже? Документация для KDIFF не помогает мне понять.
Что такое A, B и C в слиянии KDIFF
Ответы (5)
Похоже, вы выполняете трехстороннее слияние, поэтому A должна быть базовой ревизией, на которой основаны B и C, B — их, а C — ваша (я полагаю, хотя B и C могут быть противоположными).
A относится к версии, на которой основана ваша цель слияния. Если вы выполняете слияние из ветки в магистраль, «А» будет предыдущей версией магистральной линии.
B — это то, что в настоящее время находится в вашей локальной папке магистрали, включая локальные изменения.
C — это версия, которую вы хотите объединить поверх версии B.
A – это ваша родительская версия, в которой B и C являются дочерними.
Это означает, что B содержит изменения, внесенные в A user1/repo1, а C также содержит изменения в A, но другим пользователем (user2/repo2).
kdiff дает вам возможность либо выбрать модификацию из b или c (или взять оба), либо из родителя также «A»
A (BASE) > Исходный файл, который в настоящее время находится в удаленном репозитории.
B (LOCAL) > Ваш файл. Это показывает только ваши изменения по сравнению с A.
C (REMOTE) > Их файл. Это показывает только их изменения по сравнению с A.
Если изменения находятся в разных строках кода, вы берете как из B, так и из C. Если изменения находятся в одних и тех же строках кода (конфликт), вы берете либо из B, либо из C.
Если бы я делал git rebase
, мое наблюдение было таким: C - это то, что в my_branch локально (т.е. было видно в моем редакторе до того, как началась перебазировка и возникли конфликты). B - ветка, которую я перебазировал my_branch поверх (например, master ветки) A - базовая версия B и C (что не имело для меня большого значения в данном случае)