Pro Git¶
Chacon, S., & Straub, B. (2014). Pro Git. Apress.
Cited by¶
10 citations across 10 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Branching and Merging
- Branching and merging is the structural pattern in which a single lineage diverges into parallel, independently-evolving variants and those variants are later reconverged — selectively recombined back into a shared line — rather than developing in a single unbranched sequence.
This sourceApress. Canonical reference on distributed version control: establishes the fork-and-merge cycle as the central organizing primitive of collaborative development, the expectation that divergent branches reconverge into a shared line, and the three-way merge (common ancestor plus two branch tips) as the standard realization of the pattern.
Supported in partVerified against the work's full text
Pro Git's branching-and-merging section shows a history diverging into hotfix and issue branches and then being merged back, but gives no general definition of the pattern.
“In this case, your development history has diverged from some older point.”
- Branching and merging is the structural pattern in which a single lineage diverges into parallel, independently-evolving variants and those variants are later reconverged — selectively recombined back into a shared line — rather than developing in a single unbranched sequence.
- Contraposition
- Because the consequence space a single module would produce is far smaller than the cause space of "where could this failure live," each such absence-of-consequence check eliminates a whole block of candidate causes at once — the same logarithmic pruning that makes
git bisectand binary search through a commit history effectiveThis sourceDocuments `git bisect` as binary search through commit history: 'if the bug existed at commit C, the test would fail at C; the test passes at C, so the bug is not in that prefix' — the contrapositive elimination giving logarithmic pruning.
- Because the consequence space a single module would produce is far smaller than the cause space of "where could this failure live," each such absence-of-consequence check eliminates a whole block of candidate causes at once — the same logarithmic pruning that makes
- Directed Acyclic Graph
- Version control encodes commit history as a DAG in which merges combine parents but history never loops.
This sourceGit models commit history as a directed acyclic graph in which merges join parents but history never loops.
Supported in partVerified against the work's full text
The cached Pro Git section confirms merge commits have more than one parent, but never calls history a DAG or says it cannot loop.
“This is referred to as a merge commit, and is special in that it has more than one parent.”
- Version control encodes commit history as a DAG in which merges combine parents but history never loops.
- Immutability
- The identity of a commit is its content, so any change necessarily produces a different commit.
This sourceApress. Canonical reference on distributed version control: establishes the fork-and-merge cycle as the central organizing primitive of collaborative development, the expectation that divergent branches reconverge into a shared line, and the three-way merge (common ancestor plus two branch tips) as the standard realization of the pattern.
- The identity of a commit is its content, so any change necessarily produces a different commit.
- Memory Consolidation
- And in software a working-tree change is the fragile trace, while commit-then-test-then-merge is the consolidation process that joins it to the durable repository state.
This sourceDescribes the version-control model in which a fragile working-tree change becomes durable only when committed and merged into the repository's durable history—the commit-then-merge cycle as a consolidation process.
Supported in partVerified against the work's full text
The Pro Git page shows the commit, test, then merge workflow into master, but says nothing about changes being fragile or merging being a durability/consolidation step.
“You can run your tests, make sure the hotfix is what you want, and finally merge the hotfix branch back into your master branch to deploy to production.”
- And in software a working-tree change is the fragile trace, while commit-then-test-then-merge is the consolidation process that joins it to the durable repository state.
- Identity-Preserving Modification
- Two-Store Architecture
- The same structure governs version control, where the working tree and staging index (fast) couple to commit history (slow) through the deliberate, user-initiated transfer window of a commit.
This sourceDescribes the working tree, staging index, and commit history, with the commit as a deliberate user-initiated transfer.
- The same structure governs version control, where the working tree and staging index (fast) couple to commit history (slow) through the deliberate, user-initiated transfer window of a commit.
Mechanisms¶
- Merge Conflict Review
- The workhorse technique is the three-way merge, which compares each side against the common ancestor to tell an intentional change from an untouched region.
This sourceExplains three-way merge as comparing both branch snapshots with their common ancestor to identify changed and conflicting regions.
- The workhorse technique is the three-way merge, which compares each side against the common ancestor to tell an intentional change from an untouched region.
- Version Control System
- The classic misuse is rewriting history
This sourceExplains that Git can rewrite existing commits so they appear to have happened differently, while warning that already-pushed history should generally be treated as final.
- The classic misuse is rewriting history
- Version-Controlled Analysis
- Nothing was reconstructed from memory; the commit graph carried the provenance.
This sourceExplains how Git commits preserve snapshots, metadata, and parent links as a traversable history.
- Nothing was reconstructed from memory; the commit graph carried the provenance.
Verification¶
Does it exist? Confirmed. This work's DOI resolves to a registered record, which fixes its identity. That is all it fixes.
Does it back the claim? Read against the text for 3 of 10 citations: 3 supported in part. Each verdict is shown under its citation below, with what in the work backs the sentence.
Support is checked per citation rather than per work — the same source can be cited soundly in one article and wrongly in another. Per-citation recording began recently, so a citation with no recorded check is a gap in the record rather than evidence it went unchecked.
See how references were verified.
Links previously used in the corpus¶
Before the registry existed this work was also linked 4 other ways.
- https://git-scm.com/book/en/v2 ×4
- https://doi.org/10.1007/978-1-4842-0076-6 ×2
- https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging ×1
- https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git ×1
Registry ID ref:408942eef02d · see in the full table