<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.wiki.synfig.org/index.php?action=history&amp;feed=atom&amp;title=Dev%3AGit_Fundamentals</id>
		<title>Dev:Git Fundamentals - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://www.wiki.synfig.org/index.php?action=history&amp;feed=atom&amp;title=Dev%3AGit_Fundamentals"/>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Git_Fundamentals&amp;action=history"/>
		<updated>2026-05-31T15:56:07Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://www.wiki.synfig.org/index.php?title=Dev:Git_Fundamentals&amp;diff=21455&amp;oldid=prev</id>
		<title>D.j.a.y: Synfig git fundamentals  forum Postby kinderp + djay comments</title>
		<link rel="alternate" type="text/html" href="https://www.wiki.synfig.org/index.php?title=Dev:Git_Fundamentals&amp;diff=21455&amp;oldid=prev"/>
				<updated>2016-02-17T23:31:15Z</updated>
		
		<summary type="html">&lt;p&gt;Synfig git fundamentals  forum Postby kinderp + djay comments&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Would like to fix your ideas about branches on synfig and its git workflow ?&lt;br /&gt;
&lt;br /&gt;
Let's start :)&lt;br /&gt;
&lt;br /&gt;
=Branches=&lt;br /&gt;
&lt;br /&gt;
The branches are:&lt;br /&gt;
  [me@host synfig]$ git branch -r&lt;br /&gt;
  origin/0.64.2&lt;br /&gt;
  origin/0.64.x&lt;br /&gt;
  origin/1.0.x&lt;br /&gt;
  origin/HEAD -&amp;gt; origin/master&lt;br /&gt;
  origin/dev-1.0.1&lt;br /&gt;
  origin/eldruin_new_cairo_core&lt;br /&gt;
  origin/eldruin_transformation_matrix&lt;br /&gt;
  origin/genete_cairo_core&lt;br /&gt;
  origin/genete_new_cairo_core&lt;br /&gt;
  origin/master&lt;br /&gt;
&lt;br /&gt;
* {{literal|master}} is the stable branch&lt;br /&gt;
* {{literal|eldruin_new_cairo_core}}, {{literal|eldruin_transformation_matrix}}, {{literal|genete_cairo_core}}, {{literal|genete_new_cairo_core}}, are username_feature branches where new features are coded and then merged to master&lt;br /&gt;
* {{literal|0.64.2}} are the branches of the old releases.&lt;br /&gt;
* {{literal|0.64.x}}, {{literal|1.0.x}} are the bug fix branch. Example, the 1.0.x version. Last stable from this branch is 1.0.2. This is where a 1.0.3 could be baked.&lt;br /&gt;
&lt;br /&gt;
Stable branchs are tagged:&lt;br /&gt;
  [me@host synfig]$ git tag&lt;br /&gt;
  0.64.1&lt;br /&gt;
  0.64.1-rc1&lt;br /&gt;
  0.64.1-rc2&lt;br /&gt;
  0.64.2&lt;br /&gt;
  0.64.3&lt;br /&gt;
  1.0&lt;br /&gt;
  1.0.1&lt;br /&gt;
  1.0.2&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
=Workflow=&lt;br /&gt;
To contribute i should:&lt;br /&gt;
* fork synfig on github&lt;br /&gt;
* clone my forked repo, {{literal|origin}} for convention, in my local machine&lt;br /&gt;
* add original synfig repo, {{literal|upstream}} for convention, with &lt;br /&gt;
  [me@host synfig]$ git remote add upstream ...&lt;br /&gt;
&lt;br /&gt;
At this point i haven in my local machine, all xx upstream branches, all xx origin branches and one master local branch.&lt;br /&gt;
&lt;br /&gt;
It's recommanded to create a branch from updated master for hosting your contribution&lt;br /&gt;
  $ git checkout master&lt;br /&gt;
  $ git fetch upstream&lt;br /&gt;
  $ git rebase upstream/master&lt;br /&gt;
  $ git branch me_mybranch&lt;br /&gt;
  $ git checkout me_mybranch&lt;br /&gt;
&lt;br /&gt;
Nota : {{literal|git checkout -b me_mybranch}} is a shortcut for last two commands&lt;br /&gt;
&lt;br /&gt;
If it's a minor fix (typo / [https://en.wikipedia.org/wiki/Doxygen doxygen] [http://download.tuxfamily.org/synfig/api/index.html code documentation] / ... for example) you can do it from your origin master. But be aware that a nice name for {{literal|me_mybranch}} help the brain to work less ;-). It's also useful for the rest of the universe who take a look to [https://github.com/search?utf8=%E2%9C%93&amp;amp;q=cat+simulator&amp;amp;type=Repositories&amp;amp;ref=searchresults your contributions]. &lt;br /&gt;
&lt;br /&gt;
So i starts coding in my bug fix, feature, test ... local branch and add has necessary commit and comments.&lt;br /&gt;
  $ git add my_files&lt;br /&gt;
  $ git commit -m ....&lt;br /&gt;
&lt;br /&gt;
And when i have finished, my local branch is updated.&lt;br /&gt;
&lt;br /&gt;
To synch local with upstream i should :&lt;br /&gt;
   $ git fetch upstream (update all branches in upstream)&lt;br /&gt;
   $ git checkout master&lt;br /&gt;
   $ git merge upstream/master | git rebase upstream/master&lt;br /&gt;
&lt;br /&gt;
So my local branch should be synchronized with original synfig repo (upstream). &lt;br /&gt;
&lt;br /&gt;
Just before sending to github, don't forget to check the final integration of your contribution and the actual master code still are stable. If things are well commented, all files commited ... &lt;br /&gt;
&lt;br /&gt;
Now i can update my forked repo on github (origin)&lt;br /&gt;
   $ git push origin me_mybranch&lt;br /&gt;
&lt;br /&gt;
Make a pull request on github. &lt;br /&gt;
&lt;br /&gt;
When the pull is accepted, it's time to update the [http://www.synfig.org/issues/thebuggenie/synfig tracker] and {{l|Category:Manual|documentation}} part of the project.&lt;/div&gt;</summary>
		<author><name>D.j.a.y</name></author>	</entry>

	</feed>