One of colleagues is constantly corrupting git (AWS CodeCommit). Visual commit graph is similar to:
+ ccc
|
+ xxx (merge commit of branch master)
|\
| + bbb
+ | aaa
| |
+ | xx1
| + yy1
+ | zzz (merge commit of branch master)
|\|
| + yy2
+ | xx1
Commit xxx does not contain changes of commit bbb (lost changes). Merge commit is done by git pull due to local configuration pull.ff=no.
Commit xxx shows parent commits: aaa then bbb
Changed files of commit xxx does not show file changed in commit bbb. Commit xxx overwrites file changed in commit bbb.
According to graph, there was merge of commit bbb.
I do not understand what happened. It looks like no merge is done??? But if not merged, why git allowed push?
Edit to answer your question
@knittl I want to know where are changes from bbb commit?
ccc commit shows changes, not related to file changed in bbb commit. ccc commit shows content of file (changed in commit bbbb) as at time when commit aaa was done (no merge). My task is now to go thru history and see which changes are lost. (beside bbb commit, there were many more commits and those commits are in the same line as bbb commit. These changes are lost and overwritten by aaa commit then ccc commit. I am confused by parent commit of ccc. First parent is aaa, then bbb. It makes no sense since ccc commit does not contain changes of file in commit bbb