TL/DR: We merged git branch master into production and the resulting source code was different. Why?
Using an Azure DevOps Pull-Request we merged (FF) our master branch (at commit 01785665a) into production, deployed production to PROD and went home feeling sure that we'd achieved our goal of pushing staged and tested changes on master to production. Imagine our surprise when we discover production is not identical to staging but has some old code.
How can 2 branches be merged and not be identical?? The last commit 01785665a on master has my latest changes and is correct but these changes are NOT in the merge commit of c1aa29bda!?
Judging from the DevOps diagram below we did not merge in from master but some commit c503afc9 (from Apr 27) but perhaps Azure Devops has a confusing graphic (it's not clear which branches the vertical lines refer to). The other graphics show master 01785665a being merged in.
Git is convinced that production is up to date with master: git merge master (on production) => Already up to date
git log (production)
commit c1aa29bda... (HEAD -> production, origin/production)
Merge: 2095cbd 0178566
Date: Wed Jun 3 10:14:15 2020 +0000
R4 Release
git log (master)
commit 01785665a... (HEAD -> master, origin/master)
Merge: bdc6c56 a5e1d32
Date: Wed May 13 11:03:43 2020 +0000
Merged PR 13135: v1.6.6 ...



master). But do you understand what it means to make a merge commit from those two commits? Maybe your expectations are wrong. - mattproduction. Tell us what's in that file in 2095cbd and what's in that file in 0178566 and what's in the file in the outcome inproductionand let's talk in specific terms about whyproductioncame out that way. - mattmasterand copy them toproductionso production is identical to master. Is merge the wrong tool for the job. Do you understand what I am trying to accomplish? namely: copy this "version" of the branch to another branch for later reference. - Marc