Our organization uses Git for code versioning, namely to track and manage changes to the codebase in a way that avoids accidentally writing over another engineer's code, resolves change conflicts, and provides a rollback option in the event of a breaking change. Git has become an important part of the development workflow for most software engineering teams. The problem Git addresses for us is the problem of having multiple people updating a codebase. One developer might change a portion of the code in one area and another might change it somewhere else, and managing the merging of these changes together is the main job of Git. To facilitate this Git stores every committed change in a log, and this log can be reviewed and even used to roll the code back and reject changes further down the pipeline. In our organization, each engineer creates a new branch from the master codebase whenever they are starting a new task in the project, and once they have completed that task and confirmed the code is stable, the code can be merged into the master codebase and eventually included in the production build. Our team has a strict policy of not merging your own code, so the code is reviewed and approved by another engineer whom merges it in after assessing its impact. We use Git across our engineering department only.