https://medium.com/@ashriram29/mastering-git-essential-tips-and-best-practices-for-version-control-1469eca28dd2