Unix 103: probably all of the topics
authorKyle Spaans <kspaans@student.math.uwaterloo.ca>
Mon, 13 Jul 2009 19:54:30 +0000 (15:54 -0400)
committerKyle Spaans <kspaans@student.math.uwaterloo.ca>
Mon, 13 Jul 2009 19:54:30 +0000 (15:54 -0400)
code-management.pod

index b3dccc6..6302142 100644 (file)
@@ -182,12 +182,43 @@ commit, type C<git diff --cached>.
 
 =head3 Checking out old versions of files with C<git checkout>
 
+The C<git checkout> command is used for checking out different versions of
+files or for switching branches (which we will cover later). By default
+issuing C<git checkout F<file>> will update F<file> using the contents of the
+index. Alternatively C<git checkout I<version> F<file>> will update F<file>
+using the contents from I<version>, which can be a commit.
+
+E.G. C<git checkout HEAD^ hello.c>
+
 =head2 More Advanced Usage
 
-Looking at diffs, More advanced output
-from git log.
-Topic branches, merging, git specifics?
-Looking at old versions of files, see diffs between commits.
+Some less common or more tool-specific commands.
+
+=head3 More advanced output from git log.
+
+You can see more than just author information and commit messages from
+C<git log>. The C<--stat> option will give what is called a diffstat, showing
+you which files have been changed. The C<-p> option, for patch, will output a
+patch representing each commit.
+
+=head3 Branches
+
+Branching is as easy as C<git branch some-branch>. Use C<git checkout> to
+switch branches. Branches are good for expermients or seperate topics on the
+same code base. If an experiment is successful, you can merge it back into your
+I<master> branch with
+ git checkout master
+ git merge some-branch
+
+=head3 Inspecting History: Since when?
+
+What has happened since the last three commits? C<git log HEAD^^^.. F<file>>
+which is the same as C<git log HEAD~3.. F<file>>.
+
+=head3 Searching Through your Code
+
+You can search every file tracked by git in your current directory for a
+regular expression pattern using C<git grep "pattern">.
 
 =head2 Sharing Repositories