, , .
, , Git ; , , :)
:
Git , . : (); , - - "", - " ". ( , Linux, : Linux , !
: ""
, , , , , , ( ) () ? , !
!
, , . , [1]
, , ff (fast-forward). ! :
, ,
, , - forks (refs to same commits) ( ... ) [2].
, , rebase ( ) ( ), ID, , . , , .
: ?
/
; Git (.. ). git diff, git merge-base, git log rev1 ^rev2, Git ). (criss-cross, dow-tail ..) "" git. [3]
.
- , .
git log --left-right --graph --oneline --cherry-pick BRANCH1...BRANCH2 , . manpage , :
Omit any commit that introduces the same change as another commit on the "other side" when the set of commits are limited with symmetric
difference.
For example, if you have two branches, A and B, a usual way to list all commits on only one side of them is with
above in the description of that option. It however shows the commits that were cherry-picked from the other branch (for example, "3rd on b" may
be cherry-picked from branch A). With this option, such pairs of commits are excluded from the output.
[1] , , ...
[2] -: . sha1 tip (HEAD), , (a) (b) ( /) . git SCM, .
[3] . git log --merges --boundaries --decorate , rev1... rev2 ( , . man git-rev-parse)