<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Git_-_Branching_Models</id>
	<title>Git - Branching Models - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Git_-_Branching_Models"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Git_-_Branching_Models&amp;action=history"/>
	<updated>2026-05-13T05:18:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=Git_-_Branching_Models&amp;diff=62108&amp;oldid=prev</id>
		<title>Lsokolowski: /* Git-flow ⌘ */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Git_-_Branching_Models&amp;diff=62108&amp;oldid=prev"/>
		<updated>2017-10-19T12:18:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Git-flow ⌘&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Draft}}&lt;br /&gt;
[[Category:Git|010]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;slideshow style=&amp;quot;nobleprog&amp;quot; headingmark=&amp;quot;⌘&amp;quot; incmark=&amp;quot;…&amp;quot; scaled=&amp;quot;true&amp;quot; font=&amp;quot;Trebuchet MS&amp;quot; &amp;gt;&lt;br /&gt;
;title: Git Branching Models&lt;br /&gt;
;author: Lukasz Sokolowski&lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Branching models ⌘==&lt;br /&gt;
* The release and trunk branches workflow&lt;br /&gt;
* The graduation, or progressive-stability branches workflow&lt;br /&gt;
* The topic branches workflow&lt;br /&gt;
* Git-flow&lt;br /&gt;
&lt;br /&gt;
=== The release and trunk branches workflow ⌘===&lt;br /&gt;
* single integration branch (usually master)&lt;br /&gt;
* centralized way&lt;br /&gt;
* release candidates are cut (tagged) from the release branch&lt;br /&gt;
&lt;br /&gt;
=== The graduation, or progressive-stability branches workflow ⌘===&lt;br /&gt;
* You should never merge a less stable branch into more stable one, as merging would bring all the unstable history&lt;br /&gt;
&amp;lt;!-- * slide grad_or_progressive --&amp;gt;&lt;br /&gt;
[[File:Grad_or_progressive.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== The topic branches workflow ⌘===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
TODO: create slides with pictures for below examples&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Example1. The topic branches workflow with one integration branch ( master ) and three topic or feature branches.&lt;br /&gt;
** Among the topic branches, there is one (namely, newidea ) already merged in the integration branch and one ( iss-95-2 ) dependent on the feature developed in the other feature branch ( iss-95 here)&lt;br /&gt;
&amp;lt;!-- ** slide topic --&amp;gt;&lt;br /&gt;
[[File:Topic.png|600px]]&lt;br /&gt;
* Example2. The topic branches workflow with two graduation branches. &lt;br /&gt;
** Among topic branches, there is one ( iss92 ) that is considered stable enough to be merged into both the next (unstable) and master (stable) graduation branches. &lt;br /&gt;
** One ( idea ) that got merged into next for testing and one ( feat ) just created from master&lt;br /&gt;
&amp;lt;!-- ** slide topic1 --&amp;gt;&lt;br /&gt;
** Example of scenario (next slide)&lt;br /&gt;
[[File:Topic1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==== Example of scenario ⌘====&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
TODO: add more descriptions to code below&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* Example of scenario (maintainer (the release manager) creates a new release)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git log master..maint (check if empty, if not then test and try to merge maint into master)&lt;br /&gt;
git tag -s -m &amp;quot;Foo version 1.4&amp;quot; v1.4 master&lt;br /&gt;
git push origin v1.4 master&lt;br /&gt;
&lt;br /&gt;
git checkout maint&lt;br /&gt;
git merge --ff-only master&lt;br /&gt;
&lt;br /&gt;
git checkout next&lt;br /&gt;
git reset --hard master&lt;br /&gt;
git merge ai/topic_in_next_only_1...&lt;br /&gt;
(git branch --no-merged next)&lt;br /&gt;
&lt;br /&gt;
git pull&lt;br /&gt;
...&lt;br /&gt;
+ 990ffec...cc831f2 next -&amp;gt; origin/next (forced update)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Git-flow ⌘===&lt;br /&gt;
&lt;br /&gt;
* more advanced version of the topic&lt;br /&gt;
* uses two main long-running graduation branches to separate the production-ready stable state from the work involved with integration of the latest delivered ongoing development&lt;br /&gt;
* Each new feature is developed on a topic branch&lt;br /&gt;
* Release branches are forked off when the stable state reflects, or is close to, the desired state planned for the new release&lt;br /&gt;
* The release branch might exist only until the time the project release it was created for is rolled out, or it might be left to gather maintenance work: bug fixes for the given release&lt;br /&gt;
* Hotfix branches are like release branches, but for an unplanned release usually connected with fixing serious security bugs&lt;br /&gt;
[[File:Git_flow.png|600px]]&lt;/div&gt;</summary>
		<author><name>Lsokolowski</name></author>
	</entry>
</feed>