Level 2
1 day < 1 min
LeaderboardGuest · Log in
Key point 6 of 8 · Web and Software Development
Estimated reading time: 4 min

Collaboration and Quality: Git, Testing, and CI/CD

Git is a distributed version control system that tracks changes to a codebase over time, letting every developer work from a full local copy of the project's history rather than depending on constant contact with a central server. Its branching model is comparatively lightweight: creating a branch simply creates a new pointer to a commit, letting a developer work on a feature or fix in isolation without disturbing the main line of development, and switching between branches is a routine, low-cost operation. Merging brings two branches' histories back together, either by fast-forwarding a pointer when no divergent work exists, or by creating a merge commit that records how two sets of changes were combined; when the same lines of code were edited differently on both branches, Git flags a conflict that a developer must resolve manually. This combination of cheap branching and explicit, traceable merging is what makes it practical for many people to work on the same codebase concurrently without constantly overwriting each other's work.

Food for thought

Why do you think there's historiographical debate about "Collaboration and Quality: Git, Testing, and CI/CD"?