<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Git Workshop</title>
	<atom:link href="http://gitworkshop.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gitworkshop.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Wed, 24 Feb 2010 17:11:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Git Cherry-pick</title>
		<link>http://gitworkshop.com/git-cherry-pick/</link>
		<comments>http://gitworkshop.com/git-cherry-pick/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 16:54:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/?p=32</guid>
		<description><![CDATA[Boss says: I’m thinking we need the app to say the abc’s…make me a prototype
Person 2:

git pull
git branch abc
git checkout abc
touch abc.rb
edit abc: puts 'abcdefgh' (pretend this takes you a really long time &#38; is really hard)
Boss says to Person 1: ARRRG! You made count.rb with 444, not 4! Don’t you know how to count [...]]]></description>
			<content:encoded><![CDATA[<h4>Boss says: I’m thinking we need the app to say the abc’s…make me a prototype</h4>
<p>Person 2:</p>
<ul>
<li><code>git pull</code></li>
<li><code>git branch abc</code></li>
<li><code>git checkout abc</code></li>
<li><code>touch abc.rb</code></li>
<li>edit abc: <code>puts 'abcdefgh'</code> (pretend this takes you a really long time &amp; is really hard)<br />
<h4>Boss says to Person 1: ARRRG! You made count.rb with 444, not 4! Don’t you know how to count to 10? Fix it!</h4>
</li>
</ul>
<p>Person 1:</p>
<ul>
<li><code>git checkout master</code></li>
<li>change count.rb so that it counts correctly</li>
<li><code>git add .</code></li>
<li><code>git commit -m "fixed bug in count.rb"</code></li>
<li><code>git push</code></li>
</ul>
<p>Person 2</p>
<ul>
<li><code>git checkout master</code></li>
<li><code>git pull</code></li>
<li><code>git log</code></li>
<li>find the sha for the commit called “fixed bug in count.rb”, copy it</li>
<li><code>git checkout abc</code></li>
<li><code>git cherry-pick master &lt;sha you copied&gt;</code></li>
</ul>
<h4><code>git cherry-pick</code> is good for including a particular bug fix that was developed on a different branch into the branch you are working on.</h4>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/git-cherry-pick/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Git Stash</title>
		<link>http://gitworkshop.com/git-stash/</link>
		<comments>http://gitworkshop.com/git-stash/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 16:53:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/?p=30</guid>
		<description><![CDATA[Boss says to both Person 1 &#38; Person 2: make me an app that displays every single number in pi.

you make a new file: touch pi.rb
type puts '3.141'
Boss says: wait, wait…first make me an app that counts to 10

you sigh
you type into the command line git stash save

you make a new file touch count.rb
type into [...]]]></description>
			<content:encoded><![CDATA[<h4>Boss says to both Person 1 &amp; Person 2: make me an app that displays every single number in pi.</h4>
<ul>
<li>you make a new file: <code>touch pi.rb</code></li>
<li>type <code>puts '3.141'</code><br />
<h4>Boss says: wait, wait…first make me an app that counts to 10</h4>
</li>
<li>you sigh</li>
<li>you type into the command line <code>git stash save<br />
</code></li>
<li>you make a new file <code>touch count.rb</code></li>
<li>type into the new file <code>puts '1,2,3,444,5,6,7,8,9,10'</code> (yes, 444)</li>
<li><code>git commit -am "count to ten finished"</code></li>
<li><code>git stash apply</code></li>
</ul>
<h4>Use <code>git stash</code> if want to switch out your working set to another branch, work on something else, then switch back to your original work. A second possible <code>git stash</code> scenario is if you aren’t ready to commit but you need to pull (something that you and someone else are both modifying)</h4>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/git-stash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git Merge &amp; Git Diff</title>
		<link>http://gitworkshop.com/git-merge-git-diff/</link>
		<comments>http://gitworkshop.com/git-merge-git-diff/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 16:52:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/git-merge-git-diff/</guid>
		<description><![CDATA[Boss says: I like both sentences! I want the app to say “My boss is the best boss ever!” on the first line and “Welcome to the best Ruby app ever written!” on the second line

Person 1 goes back to master branch: git checkout master
Person 1 merges in the best_boss branch git merge best_boss
in this [...]]]></description>
			<content:encoded><![CDATA[<h4>Boss says: I like both sentences! I want the app to say “My boss is the best boss ever!” on the first line and “Welcome to the best Ruby app ever written!” on the second line</h4>
<ul>
<li>Person 1 goes back to master branch: <code>git checkout master</code></li>
<li>Person 1 merges in the best_boss branch <code>git merge best_boss</code></li>
<li>in this case, your merge “fast forwards” because the master branch hasn’t had any changes since the best<em>boss branch was created.  It is simply moved forward to the latest best</em>boss commit because there are not any conflicts.</li>
<li>Person 1 pulls the git repo: <code>git pull</code> (gets master, which in this case is unchanged)</li>
<li>Person 1 checks out best_app <code>git checkout best_app</code></li>
<li><code>git pull origin best_app</code> (gets the best_app branch)</li>
<li>Person 1 checks out master <code>git checkout master</code></li>
<li>merge best app into master: <code>git merge best_app</code></li>
</ul>
<p>GIT DIFF:</p>
<ul>
<li>git will tell you that the merge failed.  To see the difference between the two files, use: <code>git diff</code></li>
<li>another cool way to see the difference is <code>gitk</code></li>
<li>To see the difference in you application &amp; fix the merge conflict, look at hello.rb. Both of the boastful sentences should be in the file with a bunch of extra git syntax around them. Since we want both sentences, we can delete all of the git syntax, leaving just the two sentences. In other merge conflict situations, you may want to delete one version of the code along with the git syntax.</li>
<li><code>git commit -am "fixed merge conflict"</code></li>
<li><code>git push</code></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/git-merge-git-diff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git Branch</title>
		<link>http://gitworkshop.com/git-branch/</link>
		<comments>http://gitworkshop.com/git-branch/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 16:51:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/?p=26</guid>
		<description><![CDATA[Boss says: One person in each pair should clone the other person’s git repo from github so that you are both working on the same repo.

git clone git@github.com:&#60;user name&#62;/git_demo.git git_demo_clone

Boss says: I want one person in the pair to make the app say “My boss is the best boss ever!” The other should make it [...]]]></description>
			<content:encoded><![CDATA[<h4>Boss says: One person in each pair should clone the other person’s git repo from github so that you are both working on the same repo.</h4>
<ul>
<li><code>git clone git@github.com:&lt;user name&gt;/git_demo.git git_demo_clone</code></li>
</ul>
<h4>Boss says: I want one person in the pair to make the app say “My boss is the best boss ever!” The other should make it say “Welcome to the best Ruby app ever written!”</h4>
<h5>Person 1:</h5>
<ul>
<li><code>git branch</code> (shows you <code>master</code> branch, a branch that was auto-created by git for you)</li>
<li><code>git branch best_boss</code> (creates a new branch called best_boss)</li>
<li><code>git branch</code> (you can see the two branches you have. The ‘*’ indicates which branch you are currently on)</li>
<li><code>git checkout best_boss</code> (moves you to the new <code>best_boss</code> branch you created)</li>
<li><code>git branch</code> (now the ‘*’ is next to <code>best_boss</code>)</li>
<li>type <code>puts "My boss is the best boss ever!"</code> into hello.rb</li>
<li><code>git commit -am "updated hello.rb with best boss text"</code></li>
<li><code>git push origin best_boss</code></li>
</ul>
<h5>Person 2:</h5>
<ul>
<li><code>git branch</code> (shows you <code>master</code> branch, a branch that was auto-created by git for you)</li>
<li><code>git branch best_app</code> (creates a new branch called best_app)</li>
<li><code>git branch</code> (you can see the two branches you have. The ‘*’ indicates which branch you are currently on)</li>
<li><code>git checkout best_app</code> (moves you to the new <code>best_app</code> branch you created)</li>
<li><code>git branch</code> (now the ‘*’ is next to <code>best_app</code>)</li>
<li>type <code>puts "Welcome to the best Ruby app ever written!"</code> into hello.rb</li>
<li><code>git commit -am "updated hello.rb with best app text"</code></li>
<li><code>git push origin best_app</code></li>
</ul>
<h4>show your branches to your the boss.</h4>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/git-branch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git Reset &amp; Git Revert</title>
		<link>http://gitworkshop.com/git-reset-git-revert/</link>
		<comments>http://gitworkshop.com/git-reset-git-revert/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 16:51:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/?p=24</guid>
		<description><![CDATA[Boss says: I want the app to say hello in French!

change hello.rb so that it says puts 'bonjour!'
type into command line:
git add .
git commit -m "changed greeting from English to French"

Boss says: I changed my mind! I want the app to say hello in Spanish!

change hello.rb so that it says puts 'hola!'
type into command line:
git [...]]]></description>
			<content:encoded><![CDATA[<h4>Boss says: I want the app to say hello in French!</h4>
<ul>
<li>change hello.rb so that it says <code>puts 'bonjour!'</code></li>
<li>type into command line:</li>
<li><code>git add .</code></li>
<li><code>git commit -m "changed greeting from English to French"</code></li>
</ul>
<h4>Boss says: I changed my mind! I want the app to say hello in Spanish!</h4>
<ul>
<li>change hello.rb so that it says <code>puts 'hola!'</code></li>
<li>type into command line:</li>
<li><code>git status</code> (it shows that you’ve modified hello.rb)</li>
<li><code>git commit -am "changed greeting from French to Spanish"</code> (using -a does <code>git add .</code> for you)</li>
</ul>
<h4>Boss says: I changed my mind! I want the app to say hello in Hebrew!</h4>
<ul>
<li>change hello.rb so that it says <code>puts 'shalom!'</code></li>
<li>type into command line:</li>
<li><code>git status</code> (make sure the modifications make sense)</li>
<li><code>git add hello.rb</code></li>
<li><code>git commit -m "changed greeting from Spanish to Hebrew"</code></li>
</ul>
<h4>Boss says: I changed my mind! I want the app to say hello in Esperanto!</h4>
<ul>
<li>change hello.rb so that it says <code>puts 'saluton!'</code> save</li>
</ul>
<h4>Boss interrupts you: I changed my mind! I want the app to say hello in Hebrew!</h4>
<ul>
<li>type into command line:</li>
<li><code>git reset --hard</code> (takes your uncommited changes back to last commit. If the problematic commit is the most recent commit, and you have not yet made that commit public, you can just destroy it using git reset.)</li>
<li><code>git commit -am "decided not to change greeting from Hebrew to Esperanto"</code></li>
</ul>
<h4>Boss says: I changed my mind! I want the app to say hello in French!</h4>
<ul>
<li><code>git revert HEAD^</code> (this takes you back to the commit before the latest commit)</li>
</ul>
<h4>A little explanation: <code>git reset, git revert and git checkout</code> can all be used in different situations where you want to go back to previous commits.  <code>git reset</code> rewrites history and should only be used when you are working locally and haven’t yet pushed your changes to the central repo. <code>git revert</code> records a new commit to reverse the effect of an earlier commit.  You can use <code>git checkout</code> if you want to extract specific files as they were in another commit.</h4>
<h4>If your repo gets hosed by reverting, resetting &amp; checking out, <code>git reflog</code> may help to rescue you.  It keeps track of everything that has happened and you can use <code>HEAD@{number}</code> to get back any lost info through merging, cherry-picking or more reverting, resetting &amp; checking out.</h4>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/git-reset-git-revert/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Git Basics</title>
		<link>http://gitworkshop.com/git-basics/</link>
		<comments>http://gitworkshop.com/git-basics/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 16:50:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/?p=22</guid>
		<description><![CDATA[Boss says: I want a Ruby app!!!
You type into command line:

mkdir git_demo
cd git_demo
touch hello.rb
open hello.rb and type puts 'hello' save the file
touch goodbye.rb
open goodbye.rb and type puts 'goodbye' save the file

Boss says: If you lose the source code, you are fired!
You type into command line:

git init (initializes your git repository)
git status (shows a summary of [...]]]></description>
			<content:encoded><![CDATA[<h4>Boss says: I want a Ruby app!!!</h4>
<h4>You type into command line:</h4>
<ul>
<li><code>mkdir git_demo</code></li>
<li><code>cd git_demo</code></li>
<li><code>touch hello.rb</code></li>
<li>open hello.rb and type <code>puts 'hello'</code> save the file</li>
<li><code>touch goodbye.rb</code></li>
<li>open goodbye.rb and type <code>puts 'goodbye'</code> save the file</li>
</ul>
<h4>Boss says: If you lose the source code, you are fired!</h4>
<h4>You type into command line:</h4>
<ul>
<li><code>git init</code> (initializes your git repository)</li>
<li><code>git status</code> (shows a summary of changes made to working directory &#8211; you have two untracked files)</li>
<li><code>git add hello.rb</code> (adds a single file, hello.rb to staging)</li>
<li><code>git status</code> (shows that hello.rb is now added and is ready to be commited.  goodbye.rb is not ready to be committed.)</li>
<li><code>git add .</code> (adds all files to staging &#8211; in this case, just goodbye.rb)</li>
<li><code>git status</code> (shows that both hello.rb and goodbye.rb are staged for the next commit)</li>
<li><code>git commit -m "first commit"</code> (commits files you added to staging index to the git repo)</li>
</ul>
<h4>then you go to github, create an account, go to your dashboard, click on “New Repository”, fill out “project name” with “git_demo” and “description” with a description.</h4>
<h4>at the command line you type:</h4>
<ul>
<li><code>git remote add origin git@github.com:&lt;your user name&gt;/git_demo.git</code></li>
<li><code>git push origin master</code></li>
</ul>
<h4>go to your github account and admire your new repository!</h4>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/git-basics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Git Exercise</title>
		<link>http://gitworkshop.com/git-exercise/</link>
		<comments>http://gitworkshop.com/git-exercise/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 03:21:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/?p=17</guid>
		<description><![CDATA[Your boss is demanding.  Get ready to learn Git to keep from getting fired!

Git Basics
Git Reset &#38; Git Revert
Git Branch
Git Merge &#38; Git Diff
Git Stash
Git Cherry-pick

]]></description>
			<content:encoded><![CDATA[<p>Your boss is demanding.  Get ready to learn Git to keep from getting fired!</p>
<ol>
<li><a href="http://gitworkshop.com/git-basics/">Git Basics</a></li>
<li><a href="http://gitworkshop.com/git-reset-git-revert/">Git Reset &amp; Git Revert</a></li>
<li><a href="http://gitworkshop.com/git-branch/">Git Branch</a></li>
<li><a href="http://gitworkshop.com/git-merge-git-diff/">Git Merge &amp; Git Diff</a></li>
<li><a href="http://gitworkshop.com/git-stash/">Git Stash</a></li>
<li><a href="http://gitworkshop.com/git-cherry-pick/">Git Cherry-pick</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/git-exercise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git Workshop Group Questions</title>
		<link>http://gitworkshop.com/git-workshop-group-question/</link>
		<comments>http://gitworkshop.com/git-workshop-group-question/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 07:54:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/?p=6</guid>
		<description><![CDATA[
when to use cherry-pick
when to use checkout (branch &#38; files)
when to use merge
when to use reset
when to use revert
when to use rebase
when to use branch vs stash
how to ignore files
find as many ways to add &#38; commit as you can (all the options &#38; flags, what they do)
how to delete files properly

Exercise
]]></description>
			<content:encoded><![CDATA[<ol>
<li>when to use cherry-pick</li>
<li>when to use checkout (branch &amp; files)</li>
<li>when to use merge</li>
<li>when to use reset</li>
<li>when to use revert</li>
<li>when to use rebase</li>
<li>when to use branch vs stash</li>
<li>how to ignore files</li>
<li>find as many ways to add &amp; commit as you can (all the options &amp; flags, what they do)</li>
<li>how to delete files properly</li>
</ol>
<p>Exercise</p>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/git-workshop-group-question/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mastering Git Workshop!</title>
		<link>http://gitworkshop.com/mastering-git-workshop/</link>
		<comments>http://gitworkshop.com/mastering-git-workshop/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 07:52:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gitworkshop.com/?p=4</guid>
		<description><![CDATA[The git workshop will commence Tuesday, February 23rd 2010.  We will git learned.
]]></description>
			<content:encoded><![CDATA[<p>The git workshop will commence Tuesday, February 23rd 2010.  We will git learned.</p>
]]></content:encoded>
			<wfw:commentRss>http://gitworkshop.com/mastering-git-workshop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
