The core concept behind Git's design is to establish a distributed version control system. This means that every developer's computer contains the complete codebase and its history, resulting in enhanced data integrity and availability, as well as effective management of remote repositories. Git's structure comprises three primary elements: the Working Directory, the Staging Area, and the Git Directory (Repository). The Working Directory contains the actual files, the Staging Area serves as a virtual space where developers can prepare their changes, and the Git Repository is where Git permanently saves the snapshots of those staged changes. Version control in Git is implemented through the creation of 'commit' points each time a change is made and confirmed. Each commit point acts as a checkpoint that can be reverted to if needed, which supports a non-linear development approach. In Git, conflicts are addressed during the 'merge' process. If a file has been altered in two different branches, Git will identify those conflicts and pause the merging, giving developers the opportunity to resolve the conflicts manually before continuing. Data in Git is recorded as project snapshots rather than as files that show differences. When a commit is made, Git captures a snapshot and references it. To optimize storage, if a file hasn’t changed, Git does not save it again; instead, it creates a link to the previously stored identical file. Essentially, Git views its data as a collection of snapshots of a compact filesystem.