Что такое A, B и C в слиянии KDIFF


Почему мне дают три варианта при слиянии между моим кодом и чужим? Разве не должен быть только мой код, код другого человека и вывод ниже? Документация для KDIFF не помогает мне понять.

5 58

5 ответов:

похоже, что вы делаете трехходовое слияние, поэтому A должна быть базовой ревизией, на которой основаны B и C, B-их, а C-ваш (я считаю, что B и C могут быть противоположными).

A относится к версии, на которой основана цель слияния. При слиянии из ветки в ствол, 'A' будет предыдущая версия ствола.

B это то, что вы в настоящее время имеете в локальной папке магистрали, включая локальные изменения.

C Это версия, которую вы хотите объединить на вершине B.

a-это ваша родительская редакция, имеющая B и C в качестве дочернего.
Это означает, что B содержит изменения, сделанные на A by user1 / repo1 и C также содержит изменения на A, но другим пользователем ( user2 / repo2)

kdiff дает вам возможность либо выбрать модификацию из b или c (или взять оба), либо из родительского также "A"

a (BASE) ‐‐> исходный файл, который в настоящее время находится в удаленном РЕПО.
B (LOCAL) ‐‐> ваш файл. Это показывает только изменения по сравнению с А.
C (REMOTE) ‐‐> их файл. Это показывает только их изменения по сравнению с А.

Если изменения находятся в разных строках кода, Вы берете как из B, так и из C. Если изменения находятся в одних и тех же строках кода (конфликт), вы берете либо из B, либо из C.

Если бы я сделал git rebase, мое наблюдение состояло в том, что: C - это то, что в my_branch локально (т. е. был замечен в моем редакторе до начала перебазирования и возникновения конфликтов). B-ветвь я перебазировал my_branch поверх (скажем, master branch например) A-базовая ревизия B & C (которая не имела для меня слишком большого значения в этом случае)