It looks like you merged branch A primarily in 7a0ad6b . Not quite sure what happened after that. According to your git log output, it looks like you could combine B into the development of e553bf0 :
* | | e553bf0 resolved merge conflicts |\ \ \ | * | | 6b30050 fixed test db error | * | | 64909f9 Merge branch 'develop' into feature/b
But according to your reflog, 6b30050 is actually feature/a :
6b30050 HEAD@ {43}: checkout: moving from develop to feature/a e553bf0 HEAD@ {44}: commit (merge): resolved merge conflicts
You didn’t accidentally mix up the branch names when you copied the output to your question, right?
Looking only at reflog
Depending on your original reflog , it looks like you first merged branch B into develop , then tried to merge branch A , resolved the conflicts, and then committed:
View merged branch history
When you find out which merge is there, you should be able to view the branch log using
git log --oneline --graph <sha of merge into develop>^2
which means showing the history of the second merge parent, which will be the end of the function branch if you use the git thread.
If this helps, you can also view the history of develop branches with the commit date and date using this alias in the user's .gitconfig file:
[alias] datelog = log --format=\"%C(yellow)%h%C(reset) %C(cyan dim)%ad %C(red bold)%cd %C(reset)%s\" --graph
It will show you the author date first in blue, and then the date of fixation in red. Using the commit date, you could find out if branch A or B merged for development in the first place. You can also get both copyright and fixed dates using git log --format=fuller .
Use merge rebalancing (usually)
Finally, do you know how to rebase ? You can avoid polluting your branch history with a sync / merge commit using develop , using rebase for synchronization instead of merge :