Branch
An independent line of development in version control that allows parallel work without affecting the main codebase.
Also known as: Git Branch, Branching, Feature Branch
Category: Concepts
Tags: software, version-control, workflows, experimentation, parallel-development
Explanation
A branch is a parallel version of a repository, allowing you to work on different features, experiments, or bug fixes independently without affecting the main codebase. In Git, branches are lightweight pointers to commits, making them cheap to create and fast to switch between.
Branches enable non-linear development where multiple streams of work progress simultaneously. You might have a main branch for production code, a development branch for integration, and feature branches for individual changes. Each branch maintains its own history until merged back together.
The branching workflow encourages experimentation without risk. Create a branch, try something new, and if it doesn't work, delete the branch without polluting the main history. If it succeeds, merge it back. This removes the fear of making changes and encourages exploration.
Common branching strategies include: feature branching (one branch per feature), GitFlow (structured branching model with release and hotfix branches), and trunk-based development (short-lived branches merged frequently). Each has trade-offs between isolation and integration complexity.
For knowledge work, the branch concept represents parallel exploration of ideas. Rather than committing to one approach, branch to explore alternatives. Keep the main branch as your established understanding while experimenting in branches. This allows developing multiple perspectives without losing your current thinking, then consciously choosing which ideas to integrate.
Branches make visible the notion that thinking is not linear—we explore multiple paths, some dead-ends, some breakthroughs. The branch structure documents this exploration.
Related Concepts
← Back to all concepts