From d32738e0772f0454a46ea02d69165f3bcc5aefc6 Mon Sep 17 00:00:00 2001
From: Junio C Hamano
Table of Contents
Git is a fast distributed revision control system.
This manual is designed to be readable by someone with basic UNIX +
Table of Contents
Git is a fast distributed revision control system.
This manual is designed to be readable by someone with basic UNIX command-line skills, but no previous knowledge of git.
Chapter 1, Repositories and Branches and Chapter 2, Exploring git history explain how to fetch and study a project using gitâread these chapters to learn how to build and test a particular version of a software project, search for @@ -255,7 +255,7 @@ point is just a suggestion, and you're free to try a different version if you think it would be a good idea. For example, occasionally you may land on a commit that broke something unrelated; run
$ git bisect visualize
which will run gitk and label the commit it chose with a marker that -says "bisect". Chose a safe-looking commit nearby, note its commit +says "bisect". Choose a safe-looking commit nearby, note its commit id, and check it out with:
$ git reset --hard fb47ddb2db...
then test, run "bisect good" or "bisect bad" as appropriate, and continue.
We have seen several ways of naming commits already:
It's also possible for a push to fail in this way when other people have the right to push to the same repository. In that case, the correct -solution is to retry the push after first updating your work by either a -pull or a fetch followed by a rebase; see the +solution is to retry the push after first updating your work: either by a +pull, or by a fetch followed by a rebase; see the next section and gitcvs-migration(7) for more.
Another way to collaborate is by using a model similar to that commonly used in CVS, where several developers with special rights @@ -1162,7 +1162,7 @@ SHA1 calculation.)
There are four different types of objects: "blob", "tre "tag".
To assist in this, git also provides the tag objectâ¦
A tag object contains an object, object type, tag name, the name of the person ("tagger") who created the tag, and a message, which may contain -a signature, as can be seen using the git-cat-file(1):
$ git cat-file tag v1.5.0
+a signature, as can be seen using git-cat-file(1):
$ git cat-file tag v1.5.0
object 437b1b20df4b356c9342dac8d38849f24ef44f27
type commit
tag v1.5.0
@@ -1722,11 +1722,11 @@ $ git merge-file hello.c~2 hello.c~1 hello.c~3
This would leave with conflict markers if there are conflicts. After verifying the merge result makes sense, you can tell git what the final merge result for this file is by:
$ mv -f hello.c~2 hello.c
-$ git update-index hello.c
When a path is in unmerged state, running git-update-index
for
+$ git update-index hello.c
When a path is in the "unmerged" state, running git-update-index
for
that path tells git to mark the path resolved.
The above is the description of a git merge at the lowest level,
to help you understand what conceptually happens under the hood.
-In practice, nobody, not even git itself, uses three git-cat-file
-for this. There is git-merge-index
program that extracts the
+In practice, nobody, not even git itself, runs git-cat-file
three times
+for this. There is a git-merge-index
program that extracts the
stages to temporary files and calls a "merge" script on it:
$ git merge-index git-merge-one-file hello.c
and that is what higher level git-merge -s resolve
is implemented with.
Table of Contents
This chapter covers internal details of the git implementation which probably only git developers need to understand.
All objects have a statically determined "type" which identifies the format of the object (i.e. how it is used, and how it can refer to other @@ -1753,7 +1753,7 @@ source code. This section gives you a little guidance to show where to start.
A good place to start is with the contents of the initial commit, with:
$ git checkout e83c5163
The initial revision lays the foundation for almost everything git has today, but is small enough to read in one sitting.
Note that terminology has changed since that revision. For example, the README in that revision uses the word "changeset" to describe what we -now call a commit.
Also, we do not call it "cache" any more, but "index", however, the +now call a commit.
Also, we do not call it "cache" any more, but rather "index"; however, the
file is still called cache.h
. Remark: Not much reason to change it now,
especially since there is no good single name for it anyway, because it is
basically the header file which is included by all of Git's C sources.
If you grasp the ideas in that initial commit, you should check out a
diff --git a/user-manual.txt b/user-manual.txt
index 01c1af6b6..92d400753 100644
--- a/user-manual.txt
+++ b/user-manual.txt
@@ -518,7 +518,7 @@ $ git bisect visualize
-------------------------------------------------
which will run gitk and label the commit it chose with a marker that
-says "bisect". Chose a safe-looking commit nearby, note its commit
+says "bisect". Choose a safe-looking commit nearby, note its commit
id, and check it out with:
-------------------------------------------------
@@ -1988,8 +1988,8 @@ intend to manage the branch.
It's also possible for a push to fail in this way when other people have
the right to push to the same repository. In that case, the correct
-solution is to retry the push after first updating your work by either a
-pull or a fetch followed by a rebase; see the
+solution is to retry the push after first updating your work: either by a
+pull, or by a fetch followed by a rebase; see the
<
diff --git a/git-rev-parse.html b/git-rev-parse.html index fe70a422f..9b3229b17 100644 --- a/git-rev-parse.html +++ b/git-rev-parse.html @@ -631,7 +631,7 @@ A symbolic ref name. E.g. master typically means the commit
if $GIT_DIR/<name> exists, that is what you mean (this is usually - useful only for HEAD, FETCH_HEAD and MERGE_HEAD); + useful only for HEAD, FETCH_HEAD, ORIG_HEAD and MERGE_HEAD);
otherwise, $GIT_DIR/refs/remotes/<name>/HEAD if exists.
+HEAD names the commit your changes in the working tree is based on. +FETCH_HEAD records the branch you fetched from a remote repository +with your last git-fetch invocation. +ORIG_HEAD is created by commands that moves your HEAD in a drastic +way, to record the position of the HEAD before their operation, so that +you can change the tip of the branch back to the state before you ran +them easily. +MERGE_HEAD records the commit(s) you are merging into your branch +when you run git-merge.
@@ -801,10 +810,10 @@ commit, following the commit ancestry chain.
notation is used. E.g. "^r1 r2" means commits reachable from r2 but exclude the ones reachable from r1.
This set operation appears so often that there is a shorthand -for it. "r1..r2" is equivalent to "^r1 r2". It is -the difference of two sets (subtract the set of commits -reachable from r1 from the set of commits reachable from -r2).
+for it. When you have two commits r1 and r2 (named according +to the syntax explained in SPECIFYING REVISIONS above), you can ask +for commits that are reachable from r2 excluding those that are reachable +from r1 by "^r1 r2" and it can be written as "r1..r2".
A similar notation "r1...r2" is called symmetric difference of r1 and r2 and is defined as "r1 r2 --not $(git merge-base --all r1 r2)". @@ -964,7 +973,7 @@ Junio C Hamano <junkio@cox.net> and Pierre Habouzit <madcoder@debian.or
diff --git a/git-rev-parse.txt b/git-rev-parse.txt
index 378a3124a..088f971b7 100644
--- a/git-rev-parse.txt
+++ b/git-rev-parse.txt
@@ -166,7 +166,7 @@ blobs contained in a commit.
first match in the following rules:
. if `$GIT_DIR/
@@ -2024,7 +2024,7 @@ contributors on the git-list <git@vger.kernel.org>.
diff --git a/git.txt b/git.txt
index b7546aca1..4ecdc9f87 100644
--- a/git.txt
+++ b/git.txt
@@ -600,7 +600,7 @@ contributors on the git-list
@@ -2037,7 +2037,7 @@ to follow, not easier.
diff --git a/gitcore-tutorial.txt b/gitcore-tutorial.txt index a2b92933f..49179b0a0 100644 --- a/gitcore-tutorial.txt +++ b/gitcore-tutorial.txt @@ -1690,7 +1690,7 @@ to follow, not easier. SEE ALSO -------- linkgit:gittutorial[7], linkgit:gittutorial-2[7], -linkgit:giteveryday[7], linkgit:gitcvs-migration[7], +linkgit:everyday[7], linkgit:gitcvs-migration[7], link:user-manual.html[The Git User's Manual] GIT diff --git a/gitglossary.html b/gitglossary.html index 11b175592..3954b10fe 100644 --- a/gitglossary.html +++ b/gitglossary.html @@ -3,7 +3,7 @@
- +
@@ -272,11 +320,11 @@ gitglossary(7) Manual Page
*
+*
-
+
As a verb: The action of storing a new snapshot of the project's +
As a verb: The action of storing a new snapshot of the project's state in the git history, by creating a new commit representing the current state of the index and advancing HEAD -to point at the new commit.
+to point at the new commit.As a noun: unless it is a fast forward, a +
As a noun: unless it is a fast forward, a successful merge results in the creation of a new commit representing the result of the merge, and having as parents the tips of the merged branches. This commit is referred to as a "merge commit", or sometimes just a -"merge".
+"merge".A reflog shows the local "history" of a ref. In other words, - it can tell you what the 3rd last revision in _this_ repository - was, and what was the current state in _this_ repository, + it can tell you what the 3rd last revision in this repository + was, and what was the current state in this repository, yesterday 9:14pm. See git-reflog(1) for details.
-
+
-
+
diff --git a/gitglossary.txt b/gitglossary.txt index 5c5c31d31..565719ed5 100644 --- a/gitglossary.txt +++ b/gitglossary.txt @@ -17,7 +17,7 @@ include::glossary-content.txt[] SEE ALSO -------- linkgit:gittutorial[7], linkgit:gittutorial-2[7], -linkgit:giteveryday[7], linkgit:gitcvs-migration[7], +linkgit:everyday[7], linkgit:gitcvs-migration[7], link:user-manual.html[The Git User's Manual] GIT diff --git a/user-manual.html b/user-manual.html index 974ed6ecb..bafdc13cf 100644 --- a/user-manual.html +++ b/user-manual.html @@ -1,4 +1,4 @@ -