<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>VersionControl on emsenn.net</title>
    <link>https://emsenn.net/tags/versioncontrol/</link>
    <description>Recent content in VersionControl on emsenn.net</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 01 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://emsenn.net/tags/versioncontrol/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Git as Provenance Structure</title>
      <link>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/git-as-provenance-structure/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/git-as-provenance-structure/</guid>
      <description>&lt;p&gt;Git is a version control system. It is also, read differently, a provenance structure: an&#xA;immutable record of what was done, when, by whom, and building on what prior work. This&#xA;lesson reads git&amp;rsquo;s data model through that lens, connecting its design to the formal&#xA;concept of provenance in the &lt;a href=&#34;../../../../../../mathematics/objects/universes/interactive-semioverse/index.md&#34; class=&#34;link-internal&#34;&gt;Interactive Semioverse&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;gits-data-model&#34;&gt;Git&amp;rsquo;s data model&lt;/h2&gt;&#xA;&lt;p&gt;Git stores four kinds of objects, all content-addressed (identified by cryptographic hash) [@chacon_ProGit_2014]:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Blob&lt;/strong&gt;: the contents of a single file at a single point in time.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tree&lt;/strong&gt;: a directory listing — maps names to blobs or other trees.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Commit&lt;/strong&gt;: a snapshot of the entire repository (a tree), plus metadata: author, timestamp, message, and pointers to parent commits.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tag&lt;/strong&gt;: a named reference to a specific commit.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Every commit points to one or more parent commits, forming a &lt;strong&gt;directed acyclic graph (DAG)&lt;/strong&gt; [@spinellis_GitVersion_2012]. The DAG is append-only: you can add new commits, but existing commits are immutable. Their hashes depend on their content, their parents&amp;rsquo; hashes, and their metadata — change any of these and you get a different object.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/using-git/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/using-git/</guid>
      <description>&lt;h1 id=&#34;use-git-basics&#34;&gt;Use Git Basics&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Check status with &lt;code&gt;git status&lt;/code&gt; before and after changes.&lt;/li&gt;&#xA;&lt;li&gt;Stage relevant files with &lt;code&gt;git add&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Commit changes with a descriptive message.&lt;/li&gt;&#xA;&lt;li&gt;Pull before pushing when collaborating.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Branching and Merging</title>
      <link>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/branching-and-merging/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/branching-and-merging/</guid>
      <description>&lt;p&gt;Branches let you develop changes in parallel. Merging integrates a branch into&#xA;another branch, resolving conflicts as needed.&lt;/p&gt;&#xA;&lt;p&gt;Good practice is to keep branches focused and merge them in small, reviewable&#xA;units.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Commit Messages</title>
      <link>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/commit-messages/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/commit-messages/</guid>
      <description>&lt;p&gt;Commit messages should describe the change and its purpose in a concise form.&#xA;They help collaborators and future readers understand why a change happened.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What is Git?</title>
      <link>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/what-is-git/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://emsenn.net/library/domains/engineering/domains/tech/domains/computing/domains/software/domains/git/texts/what-is-git/</guid>
      <description>&lt;p&gt;Git is a distributed version control system that records changes as commits.&lt;/p&gt;&#xA;&lt;p&gt;It supports branching and merging so multiple lines of work can progress in&#xA;parallel and be combined later.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
