From: Junio C Hamano Date: Wed, 29 Nov 2006 20:16:55 +0000 (-0800) Subject: Merge branch 'maint' X-Git-Tag: v1.5.0-rc0~180 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/aed450925184a41adbe66bdaaefc9bf76fbfdecd?ds=inline;hp=-c Merge branch 'maint' * branch 'maint': Document git-repo-config --bool/--int options. tutorial: talk about user.name early and don't start with commit -a git-blame: fix rev parameter handling. --- aed450925184a41adbe66bdaaefc9bf76fbfdecd diff --combined Documentation/tutorial.txt index 35af81a3de,6555e58882..fe4491de41 --- a/Documentation/tutorial.txt +++ b/Documentation/tutorial.txt @@@ -11,6 -11,18 +11,18 @@@ diff" with $ man git-diff ------------------------------------------------ + It is a good idea to introduce yourself to git before doing any + operation. The easiest way to do so is: + + ------------------------------------------------ + $ cat >~/.gitconfig <<\EOF + [user] + name = Your Name Comes Here + email = you@yourdomain.example.com + EOF + ------------------------------------------------ + + Importing a new project ----------------------- @@@ -31,7 -43,8 +43,8 @@@ defaulting to local storage are You've now initialized the working directory--you may notice a new directory created, named ".git". Tell git that you want it to track - every file under the current directory with + every file under the current directory with (notice the dot '.' + that means the current directory): ------------------------------------------------ $ git add . @@@ -40,7 -53,7 +53,7 @@@ Finally, ------------------------------------------------ - $ git commit -a + $ git commit ------------------------------------------------ will prompt you for a commit message, then record the current state @@@ -55,11 -68,17 +68,17 @@@ $ git dif to review your changes. When you're done, ------------------------------------------------ - $ git commit -a + $ git commit file1 file2... ------------------------------------------------ will again prompt your for a message describing the change, and then - record the new versions of the modified files. + record the new versions of the files you listed. It is cumbersome + to list all files and you can say `-a` (which stands for 'all') + instead. + + ------------------------------------------------ + $ git commit -a + ------------------------------------------------ A note on commit messages: Though not required, it's a good idea to begin the commit message with a single short (less than 50 character) @@@ -75,7 -94,7 +94,7 @@@ $ git add path/to/new/fil ------------------------------------------------ then commit as usual. No special command is required when removing a - file; just remove it, then commit. + file; just remove it, then tell `commit` about the file as usual. At any point you can view the history of your changes using @@@ -209,28 -228,29 +228,28 @@@ at /home/bob/myrepo. She does this wit ------------------------------------------------ $ cd /home/alice/project -$ git pull /home/bob/myrepo +$ git pull /home/bob/myrepo master ------------------------------------------------ -This actually pulls changes from the branch in Bob's repository named -"master". Alice could request a different branch by adding the name -of the branch to the end of the git pull command line. +This merges the changes from Bob's "master" branch into Alice's +current branch. If Alice has made her own changes in the meantime, +then she may need to manually fix any conflicts. (Note that the +"master" argument in the above command is actually unnecessary, as it +is the default.) -This merges Bob's changes into her repository; "git log" will -now show the new commits. If Alice has made her own changes in the -meantime, then Bob's changes will be merged in, and she will need to -manually fix any conflicts. +The "pull" command thus performs two operations: it fetches changes +from a remote branch, then merges them into the current branch. -A more cautious Alice might wish to examine Bob's changes before -pulling them. She can do this by creating a temporary branch just -for the purpose of studying Bob's changes: +You can perform the first operation alone using the "git fetch" +command. For example, Alice could create a temporary branch just to +track Bob's changes, without merging them with her own, using: ------------------------------------- $ git fetch /home/bob/myrepo master:bob-incoming ------------------------------------- which fetches the changes from Bob's master branch into a new branch -named bob-incoming. (Unlike git pull, git fetch just fetches a copy -of Bob's line of development without doing any merging). Then +named bob-incoming. Then ------------------------------------- $ git log -p master..bob-incoming @@@ -239,8 -259,8 +258,8 @@@ shows a list of all the changes that Bob made since he branched from Alice's master branch. -After examining those changes, and possibly fixing things, Alice can -pull the changes into her master branch: +After examining those changes, and possibly fixing things, Alice +could pull the changes into her master branch: ------------------------------------- $ git checkout master @@@ -250,18 -270,6 +269,18 @@@ $ git pull . bob-incomin The last command is a pull from the "bob-incoming" branch in Alice's own repository. +Alice could also perform both steps at once with: + +------------------------------------- +$ git pull /home/bob/myrepo master:bob-incoming +------------------------------------- + +This is just like the "git pull /home/bob/myrepo master" that we saw +before, except that it also stores the unmerged changes from bob's +master branch in bob-incoming before merging them into Alice's +current branch. Note that git pull always merges into the current +branch, regardless of what else is given on the commandline. + Later, Bob can update his repo with Alice's latest changes using -------------------------------------