A system that records every change to the codebase with its author, time, and reason, lets several people work in parallel on separate branches, and makes it possible to return to any previous state.
Without it there is no reliable history, no safe way to experiment, and no answer to the question of what exactly is running in production. It is also the backbone of code review and automated deployment.
We work in short-lived branches merged through pull requests, keep the main branch always deployable, tag releases, and write commit messages that explain why a change was made — the repository is part of the documentation you receive.