When you push code to branch X to github, then travis will make a build of branch X. Lets assume that build failed. You can see that the build failed next to the commit in github for branch X.
If you then push the same code to another branch Y, then travis will make a build of branch Y. Lets assume that build succeeded. You can see that the build succeeded next to the commit in github for branch Y.
However what is unexpected is that if you now go see branch X, the same commit is now showing success instead of failure.
This seems to indicate that the build status of commits is shared at least between all branches. It seems that the status is not shared with other repositories, which is good.
I made a repository which fails the travis build when the branch is master and succeeds on any other branch:
Travis built the master branch and failed as expected: https://i.imgur.com/a2XWuVJ.png
Then I made a new branch from the master branch called succeed, which travis then built successfully as expected: https://i.imgur.com/Bncvupl.png
Then I went back to see the master branch, which now showed success, even though it really failed: https://i.imgur.com/jKcSaGh.png
The travis builds can be seen here: https://travis-ci.com/Rochet2/travisstatusbranchtest/branches
It clearly shows that the lastest build for same commit failed for master and succeeded for succeed branch.
However if you go to the actual branches in github you can see that both show success:
I would expect master to show failed status regardless of other branches.
The statuses can be different if the travis script has conditions, or even if for example network connectivity or similar happens to fail during one of the builds.