Why am I given three choices when merging between my code and someone else's? Shouldn't there just be my code, the other person's code, and the output below? The documentation for KD开发者_高级运维IFF doesn't help me understand.
A refers to the version your merge target is based on. If you Merge from branch to trunk, 'A' will be the previous trunk version.
B is what you currently have in your local trunk folder, including local changes.
C is the Version you wanna merge on top of B.
Sounds like you're doing a three-way merge, so A should be the base revision that B and C are based on, B is theirs and C is yours (I believe; B and C might be the opposite, though).
A (BASE) ‐‐> Original file that currently sits in remote repo.
B (LOCAL) ‐‐> Your file. This shows only your changes as compared to A.
C (REMOTE) ‐‐> Their file. This shows only their changes as compared to A.
If the changes are on different code lines, you take from both B and C. If the changes are on same code lines (conflict), you take either from B or C.
A is your parent revision having B and C as child.
Which means B contains the changes done on A by user1/repo1 and C also contains the changes on A but by other user (user2/repo2)
kdiff gives you the option either to select modification from b or c (or take both) or from parent also 'A'
If I did git rebase
, my observation was that:
C - is what in my_branch locally ( i.e. was seen in my editor before the rebase started and conflicts occurred).
B - branch I was rebasing my_branch on top of (say master branch for example)
A - base revision of B & C (which didn't matter to me too much in this case)
精彩评论