Raghav's answer is nicely concise and comprehensive, but I thought I could elaborate on this last (important!) point:
Would governance therefore be the developers who have permission to merge changes into the main bitcoin code base?
At any given point in time since the genesis block, the Bitcoin network's nodes have been in consensus about what the state of the network is. Each node's code dictates what that node considers to be valid, and by following these rules of validity the network's nodes all independently remain in consensus about the network's state at any given time.
So, as you've realized, the code is important: a change to it could change what is considered valid/invalid behaviour on the network. So who are the developers, and what sort of system of governance do they adhere to?
At this point is important to understand that the Bitcoin network is defined by the many independent nodes that are running at any given point in time, not by some github repository. This means that while Github may be the current home of the Bitcoin project, if someone merged a controversial change to the codebase (ie, one that a majority of users don’t agree with), then we should expect that the majority of users would simply not update their software, and thus the rule change would not be enacted on the network. Bitcoin software is generally not built to be auto-updated, because this function would grant developers an unnecessary amount of control over what the rules of the network are. In fact, I think you would be hard-pressed to find someone knowledgable in Bitcoin recommending installation of node software that includes automatic updates (ie through an appstore, automated package managers, etc), usually the opposite is true (build from source, check pgp sigs, etc).
"Don't trust, verify!" is a popular saying amongst Bitcoiners, it is a philosophy embodied in the software design, development, and distribution. Anybody can propose a change to the codebase, and then debate of the change's merits will occur in public forums. An extremely high level of scrutiny is employed, and by these mechanisms the Bitcoin network has come to be quite resilient against change.
The crux of this all is that Bitcoin's 'governance' comes from the bottom up (individual users independently define the rules), instead of from the top down (an administrator(s) define the rules).
I put 'governance' in quotations because the definition of government is: the exercise of authority; direction; control; management, but the Bitcoin network has no such position. Rather than something which is governed, Bitcoin seems to be more of a commons, owned by no one in particular, but available to all.
In the broader 'blockchain world', governance is a more relevant topic because almost all projects are centralized around a certain company or team, which is a fact that precludes them from becoming a monetary commons in the first place (and that is one of the key points that makes Bitcoin interesting, imo).