https://blog.devgenius.io/git-version-control-system-part-2-the-most-effective-guide-on-internet-32c90e71945d