Clear practical explanation of Git merge types conflicts and best practices for branching workflows