When merging 2 branches with the same modifications on the both sides, depending the merge side, one branch disappear from the file history. To be more clear, there is a script in attachment to reproduce, but here is the result : $ git log --graph --oneline --all --decorate --name-status * 63c807f (HEAD, master) Merge branch 'branch' into 'master' |\ | * 5dc8785 (branch) Change line 15 on branch | | M file | * d9cd3ce Change line 25 on branch | | M file * | 7220d52 Change line 15 on master |/ | M file * 7566672 Initial commit A file $ git log --graph --oneline --all --decorate --name-status -- file * 5dc8785 (branch) Change line 15 on branch | M file * d9cd3ce Change line 25 on branch | M file * 7566672 Initial commit A file => The commit 7220d52 modified the file but is not shown in file history anymore. The expected result would be: * 5dc8785 (branch) Change line 15 on branch | M file * d9cd3ce Change line 25 on branch | M file | * 7220d52 Change line 15 on master |/ | M file * 7566672 Initial commit A file The order between the 2 commits on the branch is not important. If you do a 'cherry-pick 7220d52' or a 'merge --squash master' instead of applying the same modification for commit 5dc8785, you get the same result (cherry-picking was my initial use-case). If you do not create the commit d9cd3ce, then the file history show all commits. If you merge 'master' into 'branch', then the file history show all commits. Am I missing something or is it really a bug? Thanks. -- Alex
Attachment:
git_log_path_bug.sh
Description: Bourne shell script