To understand GitHub, you should first know what a Git is.
To explain what it is in simple terms, we should first understand how the actual software is crafted. It is carried out by multiple engineers working together in a team, often on the same source code files. When the software is being crafted, it often happens that within the development cycle, requirements might get changed or some of the features of the software might not even be required at all by the time of final release.
Perhaps an actual dialog between a product owner and a technical team lead might help you understand this situation better:
Ben (Product Owner) – Hey Jerry, remember that hourly alarms feature we added to our app, the management has decided to remove that from this release.
Jerry (Lead Developer) – Sure. What I am going to do is disable that for now and then make...