Branch coverage means something different. If you have a function with 2 if statements, there are 4 branches. 100% code coverage could be 1 test and would run the code before + after the if statements, and enter each if statement block. 100% branch coverage would test this code 4 times: once without entering either if statement, once only entering the first, once only entering the second, and once entering both.
You can achieve branch coverage of two if statements by running it twice, taking the different result on each the second time. You are describing stronger / orthogonal types of coverage.
Oh, so like cyclomatic complexity coverage
Branch coverage refers to branch instructions (in the underlying machine code), not a branch in whatever source control system you're using.
I think he's referring to branching in the code (if-then-else blocks).
I was confused also but decided they meant if/else branching
Maybe the author means something else. How else could you hit 100% of the lines if you're not covering all branches.
if (a || b) { ... }
Branch coverage means testing a = true, b = anything; and a = false, b = true; and a = false, b = false.