X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Ftutorial.txt;h=554ee0af912368cb842d93c025e742daaf47f5f2;hb=3742506578dda5de2fe97e403f04150a85ffef17;hp=4c298c6e7126f1a66ab1d1b61e9eb5a8f3436a29;hpb=f1fe3846e4236a05879d7f84b11ae8ea64dd8d0d;p=git.git diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt index 4c298c6e..554ee0af 100644 --- a/Documentation/tutorial.txt +++ b/Documentation/tutorial.txt @@ -194,7 +194,7 @@ $ git clone /home/alice/project myrepo This creates a new directory "myrepo" containing a clone of Alice's repository. The clone is on an equal footing with the original -project, posessing its own copy of the original project's history. +project, possessing its own copy of the original project's history. Bob then makes some changes and commits them: @@ -240,7 +240,7 @@ $ git log -p master..bob-incoming shows a list of all the changes that Bob made since he branched from Alice's master branch. -After examing those changes, and possibly fixing things, Alice can +After examining those changes, and possibly fixing things, Alice can pull the changes into her master branch: ------------------------------------- @@ -357,7 +357,7 @@ $ git diff v2.5 HEAD # compare the current HEAD to v2.5 $ git branch stable v2.5 # start a new branch named "stable" based # at v2.5 $ git reset --hard HEAD^ # reset your current branch and working - # directory its state at HEAD^ + # directory to its state at HEAD^ ------------------------------------- Be careful with that last command: in addition to losing any changes @@ -374,7 +374,7 @@ project, so $ git grep "hello" v2.5 ------------------------------------- -searches for all occurences of "hello" in v2.5. +searches for all occurrences of "hello" in v2.5. If you leave out the commit name, git grep will search any of the files it manages in your current directory. So @@ -429,20 +429,46 @@ $ gitk --since="2 weeks ago" drivers/ ------------------------------------- allows you to browse any commits from the last 2 weeks of commits -that modified files under the "drivers" directory. +that modified files under the "drivers" directory. (Note: you can +adjust gitk's fonts by holding down the control key while pressing +"-" or "+".) Finally, most commands that take filenames will optionally allow you to precede any filename by a commit, to specify a particular version -fo the file: +of the file: ------------------------------------- $ git diff v2.5:Makefile HEAD:Makefile.in ------------------------------------- +You can also use "git cat-file -p" to see any such file: + +------------------------------------- +$ git cat-file -p v2.5:Makefile +------------------------------------- + Next Steps ---------- -Some good commands to explore next: +This tutorial should be enough to perform basic distributed revision +control for your projects. However, to fully understand the depth +and power of git you need to understand two simple ideas on which it +is based: + + * The object database is the rather elegant system used to + store the history of your project--files, directories, and + commits. + + * The index file is a cache of the state of a directory tree, + used to create commits, check out working directories, and + hold the various trees involved in a merge. + +link:tutorial-2.html[Part two of this tutorial] explains the object +database, the index file, and a few other odds and ends that you'll +need to make the most of git. + +If you don't want to consider with that right away, a few other +digressions that may be interesting at this point are: * gitlink:git-format-patch[1], gitlink:git-am[1]: These convert series of git commits into emailed patches, and vice versa, @@ -456,8 +482,6 @@ Some good commands to explore next: smart enough to perform a close-to-optimal search even in the case of complex non-linear history with lots of merged branches. -Other good starting points include link:everyday.html[Everday GIT -with 20 Commands Or So] and link:cvs-migration.html[git for CVS -users]. Also, link:core-tutorial.html[A short git tutorial] gives an -introduction to lower-level git commands for advanced users and -developers. + * link:everyday.html[Everyday GIT with 20 Commands Or So] + + * link:cvs-migration.html[git for CVS users].