git strategies for software development