@@ -42,10 +42,9 @@ How to get a git repository
4242It will be useful to have a git repository to experiment with as you
4343read this manual.
4444
45- The best way to get one is by using the gitlink:git-clone[1] command
46- to download a copy of an existing repository for a project that you
47- are interested in. If you don't already have a project in mind, here
48- are some interesting examples:
45+ The best way to get one is by using the gitlink:git-clone[1] command to
46+ download a copy of an existing repository. If you don't already have a
47+ project in mind, here are some interesting examples:
4948
5049------------------------------------------------
5150 # git itself (approx. 10MB download):
@@ -63,21 +62,18 @@ directory, you will see that it contains a copy of the project files,
6362together with a special top-level directory named ".git", which
6463contains all the information about the history of the project.
6564
66- In most of the following, examples will be taken from one of the two
67- repositories above.
68-
6965[[how-to-check-out]]
7066How to check out a different version of a project
7167-------------------------------------------------
7268
73- Git is best thought of as a tool for storing the history of a
74- collection of files. It stores the history as a compressed
75- collection of interrelated snapshots (versions) of the project's
76- contents .
69+ Git is best thought of as a tool for storing the history of a collection
70+ of files. It stores the history as a compressed collection of
71+ interrelated snapshots of the project's contents. In git each such
72+ version is called a <<def_commit,commit>> .
7773
7874A single git repository may contain multiple branches. It keeps track
7975of them by keeping a list of <<def_head,heads>> which reference the
80- latest version on each branch; the gitlink:git-branch[1] command shows
76+ latest commit on each branch; the gitlink:git-branch[1] command shows
8177you the list of branch heads:
8278
8379------------------------------------------------
@@ -149,32 +145,27 @@ current branch:
149145
150146------------------------------------------------
151147$ git show
152- commit 2b5f6dcce5bf94b9b119e9ed8d537098ec61c3d2
153- Author: Jamal Hadi Salim <hadi@cyberus.ca>
154- Date: Sat Dec 2 22:22:25 2006 -0800
155-
156- [XFRM]: Fix aevent structuring to be more complete.
157-
158- aevents can not uniquely identify an SA. We break the ABI with this
159- patch, but consensus is that since it is not yet utilized by any
160- (known) application then it is fine (better do it now than later).
161-
162- Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
163- Signed-off-by: David S. Miller <davem@davemloft.net>
164-
165- diff --git a/Documentation/networking/xfrm_sync.txt b/Documentation/networking/xfrm_sync.txt
166- index 8be626f..d7aac9d 100644
167- --- a/Documentation/networking/xfrm_sync.txt
168- +++ b/Documentation/networking/xfrm_sync.txt
169- @@ -47,10 +47,13 @@ aevent_id structure looks like:
170-
171- struct xfrm_aevent_id {
172- struct xfrm_usersa_id sa_id;
173- + xfrm_address_t saddr;
174- __u32 flags;
175- + __u32 reqid;
176- };
177- ...
148+ commit 17cf781661e6d38f737f15f53ab552f1e95960d7
149+ Author: Linus Torvalds <torvalds@ppc970.osdl.org.(none)>
150+ Date: Tue Apr 19 14:11:06 2005 -0700
151+
152+ Remove duplicate getenv(DB_ENVIRONMENT) call
153+
154+ Noted by Tony Luck.
155+
156+ diff --git a/init-db.c b/init-db.c
157+ index 65898fa..b002dc6 100644
158+ --- a/init-db.c
159+ +++ b/init-db.c
160+ @@ -7,7 +7,7 @@
161+
162+ int main(int argc, char **argv)
163+ {
164+ - char *sha1_dir = getenv(DB_ENVIRONMENT), *path;
165+ + char *sha1_dir, *path;
166+ int len, i;
167+
168+ if (mkdir(".git", 0755) < 0) {
178169------------------------------------------------
179170
180171As you can see, a commit shows who made the latest change, what they
@@ -923,7 +914,7 @@ they look OK.
923914
924915[[Finding-comments-with-given-content]]
925916Finding commits referencing a file with given content
926- -----------------------------------------------------
917+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
927918
928919Somebody hands you a copy of a file, and asks which commits modified a
929920file such that it contained the given content either before or after the
@@ -1105,20 +1096,14 @@ backup files made by your editor. Of course, 'not' tracking files with git
11051096is just a matter of 'not' calling "`git add`" on them. But it quickly becomes
11061097annoying to have these untracked files lying around; e.g. they make
11071098"`git add .`" and "`git commit -a`" practically useless, and they keep
1108- showing up in the output of "`git status`", etc .
1099+ showing up in the output of "`git status`".
11091100
1110- Git therefore provides "exclude patterns" for telling git which files to
1111- actively ignore. Exclude patterns are thoroughly explained in the
1112- gitlink:gitignore[5] manual page, but the heart of the concept is simply
1113- a list of files which git should ignore. Entries in the list may contain
1114- globs to specify multiple files, or may be prefixed by "`!`" to
1115- explicitly include (un-ignore) a previously excluded (ignored) file
1116- (i.e. later exclude patterns override earlier ones). The following
1117- example should illustrate such patterns:
1101+ You can tell git to ignore certain files by creating a file called .gitignore
1102+ in the top level of your working directory, with contents such as:
11181103
11191104-------------------------------------------------
11201105# Lines starting with '#' are considered comments.
1121- # Ignore foo.txt.
1106+ # Ignore any file named foo.txt.
11221107foo.txt
11231108# Ignore (generated) html files,
11241109*.html
@@ -1128,41 +1113,20 @@ foo.txt
11281113*.[oa]
11291114-------------------------------------------------
11301115
1131- The next question is where to put these exclude patterns so that git can
1132- find them. Git looks for exclude patterns in the following files:
1133-
1134- `.gitignore` files in your working tree:::
1135- You may store multiple `.gitignore` files at various locations in your
1136- working tree. Each `.gitignore` file is applied to the directory where
1137- it's located, including its subdirectories. Furthermore, the
1138- `.gitignore` files can be tracked like any other files in your working
1139- tree; just do a "`git add .gitignore`" and commit. `.gitignore` is
1140- therefore the right place to put exclude patterns that are meant to
1141- be shared between all project participants, such as build output files
1142- (e.g. `\*.o`), etc.
1143- `.git/info/exclude` in your repo:::
1144- Exclude patterns in this file are applied to the working tree as a
1145- whole. Since the file is not located in your working tree, it does
1146- not follow push/pull/clone like `.gitignore` can do. This is therefore
1147- the place to put exclude patterns that are local to your copy of the
1148- repo (i.e. 'not' shared between project participants), such as
1149- temporary backup files made by your editor (e.g. `\*~`), etc.
1150- The file specified by the `core.excludesfile` config directive:::
1151- By setting the `core.excludesfile` config directive you can tell git
1152- where to find more exclude patterns (see gitlink:git-config[1] for
1153- more information on configuration options). This config directive
1154- can be set in the per-repo `.git/config` file, in which case the
1155- exclude patterns will apply to that repo only. Alternatively, you
1156- can set the directive in the global `~/.gitconfig` file to apply
1157- the exclude pattern to all your git repos. As with the above
1158- `.git/info/exclude` (and, indeed, with git config directives in
1159- general), this directive does not follow push/pull/clone, but remain
1160- local to your repo(s).
1161-
1162- [NOTE]
1163- In addition to the above alternatives, there are git commands that can take
1164- exclude patterns directly on the command line. See gitlink:git-ls-files[1]
1165- for an example of this.
1116+ See gitlink:gitignore[5] for a detailed explanation of the syntax. You can
1117+ also place .gitignore files in other directories in your working tree, and they
1118+ will apply to those directories and their subdirectories. The `.gitignore`
1119+ files can be added to your repository like any other files (just run `git add
1120+ .gitignore` and `git commit`, as usual), which is convenient when the exclude
1121+ patterns (such as patterns matching build output files) would also make sense
1122+ for other users who clone your repository.
1123+
1124+ If you wish the exclude patterns to affect only certain repositories
1125+ (instead of every repository for a given project), you may instead put
1126+ them in a file in your repository named .git/info/exclude, or in any file
1127+ specified by the `core.excludesfile` configuration variable. Some git
1128+ commands can also take exclude patterns directly on the command line.
1129+ See gitlink:gitignore[5] for the details.
11661130
11671131[[how-to-merge]]
11681132How to merge
@@ -1796,11 +1760,12 @@ taken from the message containing each patch.
17961760Public git repositories
17971761-----------------------
17981762
1799- Another way to submit changes to a project is to tell the maintainer of
1800- that project to pull the changes from your repository using git-pull[1].
1801- In the section "<<getting-updates-with-git-pull, Getting updates with
1802- git pull>>" we described this as a way to get updates from the "main"
1803- repository, but it works just as well in the other direction.
1763+ Another way to submit changes to a project is to tell the maintainer
1764+ of that project to pull the changes from your repository using
1765+ gitlink:git-pull[1]. In the section "<<getting-updates-with-git-pull,
1766+ Getting updates with git pull>>" we described this as a way to get
1767+ updates from the "main" repository, but it works just as well in the
1768+ other direction.
18041769
18051770If you and the maintainer both have accounts on the same machine, then
18061771you can just pull changes from each other's repositories directly;
@@ -2057,7 +2022,8 @@ $ cd work
20572022Linus's tree will be stored in the remote branch named origin/master,
20582023and can be updated using gitlink:git-fetch[1]; you can track other
20592024public trees using gitlink:git-remote[1] to set up a "remote" and
2060- git-fetch[1] to keep them up-to-date; see <<repositories-and-branches>>.
2025+ gitlink:git-fetch[1] to keep them up-to-date; see
2026+ <<repositories-and-branches>>.
20612027
20622028Now create the branches in which you are going to work; these start out
20632029at the current tip of origin/master branch, and should be set up (using
@@ -2512,9 +2478,9 @@ $ gitk origin..mywork &
25122478And browse through the list of patches in the mywork branch using gitk,
25132479applying them (possibly in a different order) to mywork-new using
25142480cherry-pick, and possibly modifying them as you go using commit --amend.
2515- The git-gui[1] command may also help as it allows you to individually
2516- select diff hunks for inclusion in the index (by right-clicking on the
2517- diff hunk and choosing "Stage Hunk for Commit").
2481+ The gitlink: git-gui[1] command may also help as it allows you to
2482+ individually select diff hunks for inclusion in the index (by
2483+ right-clicking on the diff hunk and choosing "Stage Hunk for Commit").
25182484
25192485Another technique is to use git-format-patch to create a series of
25202486patches, then reset the state to before the patches:
0 commit comments