Hello, I am in a process of designing a git strategy for our vs solution. The vs solution is a legacy asp .net webforms app which is enormous. CI is out of the question because of cumbersome db source setup. So, we are pretty much relying on integration testing. We have roughly 6 people on development team. Each of developers are assigned separate feature. Sometimes, a feature spans several releases. Here are the branches: Master - source that made it to prod Feature - checked out from master Head. The Head represents previous release. QA - synchronized with master at the beginning of release development. Upon completion, each active Feature branch is merged into QA. Bugfix - in case of bug in current development, QA branch is checked out to bugfix branch. Upon completion, it is merged back into QA branch. Over time these master and qa branches will be enormous. How do I keep it concise preserving detailed history in case I need to hunt down a specific commit? Any help is appreciated. Thanks in advance.