Merge branch 'ta/doc-no-small-caps'
Update documentation to change "GIT" which was a poor-man's small caps to "Git". The latter was the intended spelling. Also change "git" spelled in all-lowercase to "Git" when it refers to the system as the whole or the concept it embodies, as opposed to the command the end users would type. * ta/doc-no-small-caps: Documentation: StGit is the right spelling, not StGIT Documentation: describe the "repository" in repository-layout Documentation: add a description for 'gitfile' to glossary Documentation: do not use undefined terms git-dir and git-file Documentation: the name of the system is 'Git', not 'git' Documentation: avoid poor-man's small caps GIT
This commit is contained in:
commit
e34c7e2b51
@ -1,5 +1,5 @@
|
|||||||
Like other projects, we also have some guidelines to keep to the
|
Like other projects, we also have some guidelines to keep to the
|
||||||
code. For git in general, three rough rules are:
|
code. For Git in general, three rough rules are:
|
||||||
|
|
||||||
- Most importantly, we never say "It's in POSIX; we'll happily
|
- Most importantly, we never say "It's in POSIX; we'll happily
|
||||||
ignore your needs should your system not conform to it."
|
ignore your needs should your system not conform to it."
|
||||||
@ -22,7 +22,7 @@ code. For git in general, three rough rules are:
|
|||||||
As for more concrete guidelines, just imitate the existing code
|
As for more concrete guidelines, just imitate the existing code
|
||||||
(this is a good guideline, no matter which project you are
|
(this is a good guideline, no matter which project you are
|
||||||
contributing to). It is always preferable to match the _local_
|
contributing to). It is always preferable to match the _local_
|
||||||
convention. New code added to git suite is expected to match
|
convention. New code added to Git suite is expected to match
|
||||||
the overall style of existing code. Modifications to existing
|
the overall style of existing code. Modifications to existing
|
||||||
code is expected to match the style the surrounding code already
|
code is expected to match the style the surrounding code already
|
||||||
uses (even if it doesn't match the overall style of existing code).
|
uses (even if it doesn't match the overall style of existing code).
|
||||||
@ -112,7 +112,7 @@ For C programs:
|
|||||||
|
|
||||||
- We try to keep to at most 80 characters per line.
|
- We try to keep to at most 80 characters per line.
|
||||||
|
|
||||||
- We try to support a wide range of C compilers to compile git with,
|
- We try to support a wide range of C compilers to compile Git with,
|
||||||
including old ones. That means that you should not use C99
|
including old ones. That means that you should not use C99
|
||||||
initializers, even if a lot of compilers grok it.
|
initializers, even if a lot of compilers grok it.
|
||||||
|
|
||||||
@ -164,14 +164,14 @@ For C programs:
|
|||||||
|
|
||||||
- If you are planning a new command, consider writing it in shell
|
- If you are planning a new command, consider writing it in shell
|
||||||
or perl first, so that changes in semantics can be easily
|
or perl first, so that changes in semantics can be easily
|
||||||
changed and discussed. Many git commands started out like
|
changed and discussed. Many Git commands started out like
|
||||||
that, and a few are still scripts.
|
that, and a few are still scripts.
|
||||||
|
|
||||||
- Avoid introducing a new dependency into git. This means you
|
- Avoid introducing a new dependency into Git. This means you
|
||||||
usually should stay away from scripting languages not already
|
usually should stay away from scripting languages not already
|
||||||
used in the git core command set (unless your command is clearly
|
used in the Git core command set (unless your command is clearly
|
||||||
separate from it, such as an importer to convert random-scm-X
|
separate from it, such as an importer to convert random-scm-X
|
||||||
repositories to git).
|
repositories to Git).
|
||||||
|
|
||||||
- When we pass <string, length> pair to functions, we should try to
|
- When we pass <string, length> pair to functions, we should try to
|
||||||
pass them in that order.
|
pass them in that order.
|
||||||
@ -230,3 +230,8 @@ Writing Documentation:
|
|||||||
valid usage. "*" has its own pair of brackets, because it can
|
valid usage. "*" has its own pair of brackets, because it can
|
||||||
(optionally) be specified only when one or more of the letters is
|
(optionally) be specified only when one or more of the letters is
|
||||||
also provided.
|
also provided.
|
||||||
|
|
||||||
|
A note on notation:
|
||||||
|
Use 'git' (all lowercase) when talking about commands i.e. something
|
||||||
|
the user would type into a shell and use 'Git' (uppercase first letter)
|
||||||
|
when talking about the version control system and its properties.
|
||||||
|
@ -346,8 +346,8 @@ $(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
|
|||||||
install-webdoc : html
|
install-webdoc : html
|
||||||
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
|
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
|
||||||
|
|
||||||
# You must have a clone of git-htmldocs and git-manpages repositories
|
# You must have a clone of 'git-htmldocs' and 'git-manpages' repositories
|
||||||
# next to the git repository itself for the following to work.
|
# next to the 'git' repository itself for the following to work.
|
||||||
|
|
||||||
quick-install: quick-install-man
|
quick-install: quick-install-man
|
||||||
|
|
||||||
|
@ -103,9 +103,9 @@ without external resources. Instead of giving a URL to a mailing list
|
|||||||
archive, summarize the relevant points of the discussion.
|
archive, summarize the relevant points of the discussion.
|
||||||
|
|
||||||
|
|
||||||
(3) Generate your patch using git tools out of your commits.
|
(3) Generate your patch using Git tools out of your commits.
|
||||||
|
|
||||||
git based diff tools generate unidiff which is the preferred format.
|
Git based diff tools generate unidiff which is the preferred format.
|
||||||
|
|
||||||
You do not have to be afraid to use -M option to "git diff" or
|
You do not have to be afraid to use -M option to "git diff" or
|
||||||
"git format-patch", if your patch involves file renames. The
|
"git format-patch", if your patch involves file renames. The
|
||||||
@ -122,7 +122,7 @@ that is fine, but please mark it as such.
|
|||||||
|
|
||||||
(4) Sending your patches.
|
(4) Sending your patches.
|
||||||
|
|
||||||
People on the git mailing list need to be able to read and
|
People on the Git mailing list need to be able to read and
|
||||||
comment on the changes you are submitting. It is important for
|
comment on the changes you are submitting. It is important for
|
||||||
a developer to be able to "quote" your changes, using standard
|
a developer to be able to "quote" your changes, using standard
|
||||||
e-mail tools, so that they may comment on specific portions of
|
e-mail tools, so that they may comment on specific portions of
|
||||||
@ -206,7 +206,7 @@ patch.
|
|||||||
|
|
||||||
To improve tracking of who did what, we've borrowed the
|
To improve tracking of who did what, we've borrowed the
|
||||||
"sign-off" procedure from the Linux kernel project on patches
|
"sign-off" procedure from the Linux kernel project on patches
|
||||||
that are being emailed around. Although core GIT is a lot
|
that are being emailed around. Although core Git is a lot
|
||||||
smaller project it is a good discipline to follow it.
|
smaller project it is a good discipline to follow it.
|
||||||
|
|
||||||
The sign-off is a simple line at the end of the explanation for
|
The sign-off is a simple line at the end of the explanation for
|
||||||
@ -244,7 +244,7 @@ then you just add a line saying
|
|||||||
|
|
||||||
Signed-off-by: Random J Developer <random@developer.example.org>
|
Signed-off-by: Random J Developer <random@developer.example.org>
|
||||||
|
|
||||||
This line can be automatically added by git if you run the git-commit
|
This line can be automatically added by Git if you run the git-commit
|
||||||
command with the -s option.
|
command with the -s option.
|
||||||
|
|
||||||
Notice that you can place your own Signed-off-by: line when
|
Notice that you can place your own Signed-off-by: line when
|
||||||
@ -337,7 +337,7 @@ Know the status of your patch after submission
|
|||||||
tell you if your patch is merged in pu if you rebase on top of
|
tell you if your patch is merged in pu if you rebase on top of
|
||||||
master).
|
master).
|
||||||
|
|
||||||
* Read the git mailing list, the maintainer regularly posts messages
|
* Read the Git mailing list, the maintainer regularly posts messages
|
||||||
entitled "What's cooking in git.git" and "What's in git.git" giving
|
entitled "What's cooking in git.git" and "What's in git.git" giving
|
||||||
the status of various proposed changes.
|
the status of various proposed changes.
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# Note, {0} is the manpage section, while {target} is the command.
|
# Note, {0} is the manpage section, while {target} is the command.
|
||||||
#
|
#
|
||||||
# Show GIT link as: <command>(<section>); if section is defined, else just show
|
# Show Git link as: <command>(<section>); if section is defined, else just show
|
||||||
# the command.
|
# the command.
|
||||||
|
|
||||||
[macros]
|
[macros]
|
||||||
|
@ -95,7 +95,7 @@ of lines before or after the line given by <start>.
|
|||||||
running extra passes of inspection.
|
running extra passes of inspection.
|
||||||
+
|
+
|
||||||
<num> is optional but it is the lower bound on the number of
|
<num> is optional but it is the lower bound on the number of
|
||||||
alphanumeric characters that git must detect as moving/copying
|
alphanumeric characters that Git must detect as moving/copying
|
||||||
within a file for it to associate those lines with the parent
|
within a file for it to associate those lines with the parent
|
||||||
commit. The default value is 20.
|
commit. The default value is 20.
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ commit. The default value is 20.
|
|||||||
looks for copies from other files in any commit.
|
looks for copies from other files in any commit.
|
||||||
+
|
+
|
||||||
<num> is optional but it is the lower bound on the number of
|
<num> is optional but it is the lower bound on the number of
|
||||||
alphanumeric characters that git must detect as moving/copying
|
alphanumeric characters that Git must detect as moving/copying
|
||||||
between files for it to associate those lines with the parent
|
between files for it to associate those lines with the parent
|
||||||
commit. And the default value is 40. If there are more than one
|
commit. And the default value is 40. If there are more than one
|
||||||
`-C` options given, the <num> argument of the last `-C` will
|
`-C` options given, the <num> argument of the last `-C` will
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
CONFIGURATION FILE
|
CONFIGURATION FILE
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
The git configuration file contains a number of variables that affect
|
The Git configuration file contains a number of variables that affect
|
||||||
the git command's behavior. The `.git/config` file in each repository
|
the Git commands' behavior. The `.git/config` file in each repository
|
||||||
is used to store the configuration for that repository, and
|
is used to store the configuration for that repository, and
|
||||||
`$HOME/.gitconfig` is used to store a per-user configuration as
|
`$HOME/.gitconfig` is used to store a per-user configuration as
|
||||||
fallback values for the `.git/config` file. The file `/etc/gitconfig`
|
fallback values for the `.git/config` file. The file `/etc/gitconfig`
|
||||||
can be used to store a system-wide default configuration.
|
can be used to store a system-wide default configuration.
|
||||||
|
|
||||||
The configuration variables are used by both the git plumbing
|
The configuration variables are used by both the Git plumbing
|
||||||
and the porcelains. The variables are divided into sections, wherein
|
and the porcelains. The variables are divided into sections, wherein
|
||||||
the fully qualified variable name of the variable itself is the last
|
the fully qualified variable name of the variable itself is the last
|
||||||
dot-separated segment and the section name is everything before the last
|
dot-separated segment and the section name is everything before the last
|
||||||
@ -219,9 +219,9 @@ core.ignoreCygwinFSTricks::
|
|||||||
|
|
||||||
core.ignorecase::
|
core.ignorecase::
|
||||||
If true, this option enables various workarounds to enable
|
If true, this option enables various workarounds to enable
|
||||||
git to work better on filesystems that are not case sensitive,
|
Git to work better on filesystems that are not case sensitive,
|
||||||
like FAT. For example, if a directory listing finds
|
like FAT. For example, if a directory listing finds
|
||||||
"makefile" when git expects "Makefile", git will assume
|
"makefile" when Git expects "Makefile", Git will assume
|
||||||
it is really the same file, and continue to remember it as
|
it is really the same file, and continue to remember it as
|
||||||
"Makefile".
|
"Makefile".
|
||||||
+
|
+
|
||||||
@ -230,13 +230,13 @@ will probe and set core.ignorecase true if appropriate when the repository
|
|||||||
is created.
|
is created.
|
||||||
|
|
||||||
core.precomposeunicode::
|
core.precomposeunicode::
|
||||||
This option is only used by Mac OS implementation of git.
|
This option is only used by Mac OS implementation of Git.
|
||||||
When core.precomposeunicode=true, git reverts the unicode decomposition
|
When core.precomposeunicode=true, Git reverts the unicode decomposition
|
||||||
of filenames done by Mac OS. This is useful when sharing a repository
|
of filenames done by Mac OS. This is useful when sharing a repository
|
||||||
between Mac OS and Linux or Windows.
|
between Mac OS and Linux or Windows.
|
||||||
(Git for Windows 1.7.10 or higher is needed, or git under cygwin 1.7).
|
(Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7).
|
||||||
When false, file names are handled fully transparent by git,
|
When false, file names are handled fully transparent by Git,
|
||||||
which is backward compatible with older versions of git.
|
which is backward compatible with older versions of Git.
|
||||||
|
|
||||||
core.trustctime::
|
core.trustctime::
|
||||||
If false, the ctime differences between the index and the
|
If false, the ctime differences between the index and the
|
||||||
@ -272,20 +272,20 @@ core.eol::
|
|||||||
conversion.
|
conversion.
|
||||||
|
|
||||||
core.safecrlf::
|
core.safecrlf::
|
||||||
If true, makes git check if converting `CRLF` is reversible when
|
If true, makes Git check if converting `CRLF` is reversible when
|
||||||
end-of-line conversion is active. Git will verify if a command
|
end-of-line conversion is active. Git will verify if a command
|
||||||
modifies a file in the work tree either directly or indirectly.
|
modifies a file in the work tree either directly or indirectly.
|
||||||
For example, committing a file followed by checking out the
|
For example, committing a file followed by checking out the
|
||||||
same file should yield the original file in the work tree. If
|
same file should yield the original file in the work tree. If
|
||||||
this is not the case for the current setting of
|
this is not the case for the current setting of
|
||||||
`core.autocrlf`, git will reject the file. The variable can
|
`core.autocrlf`, Git will reject the file. The variable can
|
||||||
be set to "warn", in which case git will only warn about an
|
be set to "warn", in which case Git will only warn about an
|
||||||
irreversible conversion but continue the operation.
|
irreversible conversion but continue the operation.
|
||||||
+
|
+
|
||||||
CRLF conversion bears a slight chance of corrupting data.
|
CRLF conversion bears a slight chance of corrupting data.
|
||||||
When it is enabled, git will convert CRLF to LF during commit and LF to
|
When it is enabled, Git will convert CRLF to LF during commit and LF to
|
||||||
CRLF during checkout. A file that contains a mixture of LF and
|
CRLF during checkout. A file that contains a mixture of LF and
|
||||||
CRLF before the commit cannot be recreated by git. For text
|
CRLF before the commit cannot be recreated by Git. For text
|
||||||
files this is the right thing to do: it corrects line endings
|
files this is the right thing to do: it corrects line endings
|
||||||
such that we have only LF line endings in the repository.
|
such that we have only LF line endings in the repository.
|
||||||
But for binary files that are accidentally classified as text the
|
But for binary files that are accidentally classified as text the
|
||||||
@ -295,7 +295,7 @@ If you recognize such corruption early you can easily fix it by
|
|||||||
setting the conversion type explicitly in .gitattributes. Right
|
setting the conversion type explicitly in .gitattributes. Right
|
||||||
after committing you still have the original file in your work
|
after committing you still have the original file in your work
|
||||||
tree and this file is not yet corrupted. You can explicitly tell
|
tree and this file is not yet corrupted. You can explicitly tell
|
||||||
git that this file is binary and git will handle the file
|
Git that this file is binary and Git will handle the file
|
||||||
appropriately.
|
appropriately.
|
||||||
+
|
+
|
||||||
Unfortunately, the desired effect of cleaning up text files with
|
Unfortunately, the desired effect of cleaning up text files with
|
||||||
@ -340,7 +340,7 @@ is created.
|
|||||||
core.gitProxy::
|
core.gitProxy::
|
||||||
A "proxy command" to execute (as 'command host port') instead
|
A "proxy command" to execute (as 'command host port') instead
|
||||||
of establishing direct connection to the remote server when
|
of establishing direct connection to the remote server when
|
||||||
using the git protocol for fetching. If the variable value is
|
using the Git protocol for fetching. If the variable value is
|
||||||
in the "COMMAND for DOMAIN" format, the command is applied only
|
in the "COMMAND for DOMAIN" format, the command is applied only
|
||||||
on hostnames ending with the specified domain string. This variable
|
on hostnames ending with the specified domain string. This variable
|
||||||
may be set multiple times and is matched in the given order;
|
may be set multiple times and is matched in the given order;
|
||||||
@ -399,7 +399,7 @@ Note that this variable is honored even when set in a configuration
|
|||||||
file in a ".git" subdirectory of a directory and its value differs
|
file in a ".git" subdirectory of a directory and its value differs
|
||||||
from the latter directory (e.g. "/path/to/.git/config" has
|
from the latter directory (e.g. "/path/to/.git/config" has
|
||||||
core.worktree set to "/different/path"), which is most likely a
|
core.worktree set to "/different/path"), which is most likely a
|
||||||
misconfiguration. Running git commands in the "/path/to" directory will
|
misconfiguration. Running Git commands in the "/path/to" directory will
|
||||||
still use "/different/path" as the root of the work tree and can cause
|
still use "/different/path" as the root of the work tree and can cause
|
||||||
confusion unless you know what you are doing (e.g. you are creating a
|
confusion unless you know what you are doing (e.g. you are creating a
|
||||||
read-only snapshot of the same index to a location different from the
|
read-only snapshot of the same index to a location different from the
|
||||||
@ -431,7 +431,7 @@ core.sharedRepository::
|
|||||||
several users in a group (making sure all the files and objects are
|
several users in a group (making sure all the files and objects are
|
||||||
group-writable). When 'all' (or 'world' or 'everybody'), the
|
group-writable). When 'all' (or 'world' or 'everybody'), the
|
||||||
repository will be readable by all users, additionally to being
|
repository will be readable by all users, additionally to being
|
||||||
group-shareable. When 'umask' (or 'false'), git will use permissions
|
group-shareable. When 'umask' (or 'false'), Git will use permissions
|
||||||
reported by umask(2). When '0xxx', where '0xxx' is an octal number,
|
reported by umask(2). When '0xxx', where '0xxx' is an octal number,
|
||||||
files in the repository will have this mode value. '0xxx' will override
|
files in the repository will have this mode value. '0xxx' will override
|
||||||
user's umask value (whereas the other options will only override
|
user's umask value (whereas the other options will only override
|
||||||
@ -442,7 +442,7 @@ core.sharedRepository::
|
|||||||
See linkgit:git-init[1]. False by default.
|
See linkgit:git-init[1]. False by default.
|
||||||
|
|
||||||
core.warnAmbiguousRefs::
|
core.warnAmbiguousRefs::
|
||||||
If true, git will warn you if the ref name you passed it is ambiguous
|
If true, Git will warn you if the ref name you passed it is ambiguous
|
||||||
and might match multiple refs in the .git/refs/ tree. True by default.
|
and might match multiple refs in the .git/refs/ tree. True by default.
|
||||||
|
|
||||||
core.compression::
|
core.compression::
|
||||||
@ -514,7 +514,7 @@ Common unit suffixes of 'k', 'm', or 'g' are supported.
|
|||||||
|
|
||||||
core.excludesfile::
|
core.excludesfile::
|
||||||
In addition to '.gitignore' (per-directory) and
|
In addition to '.gitignore' (per-directory) and
|
||||||
'.git/info/exclude', git looks into this file for patterns
|
'.git/info/exclude', Git looks into this file for patterns
|
||||||
of files which are not meant to be tracked. "`~/`" is expanded
|
of files which are not meant to be tracked. "`~/`" is expanded
|
||||||
to the value of `$HOME` and "`~user/`" to the specified user's
|
to the value of `$HOME` and "`~user/`" to the specified user's
|
||||||
home directory. Its default value is $XDG_CONFIG_HOME/git/ignore.
|
home directory. Its default value is $XDG_CONFIG_HOME/git/ignore.
|
||||||
@ -532,7 +532,7 @@ core.askpass::
|
|||||||
|
|
||||||
core.attributesfile::
|
core.attributesfile::
|
||||||
In addition to '.gitattributes' (per-directory) and
|
In addition to '.gitattributes' (per-directory) and
|
||||||
'.git/info/attributes', git looks into this file for attributes
|
'.git/info/attributes', Git looks into this file for attributes
|
||||||
(see linkgit:gitattributes[5]). Path expansions are made the same
|
(see linkgit:gitattributes[5]). Path expansions are made the same
|
||||||
way as for `core.excludesfile`. Its default value is
|
way as for `core.excludesfile`. Its default value is
|
||||||
$XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not
|
$XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not
|
||||||
@ -557,9 +557,9 @@ sequence.editor::
|
|||||||
When not configured the default commit message editor is used instead.
|
When not configured the default commit message editor is used instead.
|
||||||
|
|
||||||
core.pager::
|
core.pager::
|
||||||
The command that git will use to paginate output. Can
|
The command that Git will use to paginate output. Can
|
||||||
be overridden with the `GIT_PAGER` environment
|
be overridden with the `GIT_PAGER` environment
|
||||||
variable. Note that git sets the `LESS` environment
|
variable. Note that Git sets the `LESS` environment
|
||||||
variable to `FRSX` if it is unset when it runs the
|
variable to `FRSX` if it is unset when it runs the
|
||||||
pager. One can change these settings by setting the
|
pager. One can change these settings by setting the
|
||||||
`LESS` variable to some other value. Alternately,
|
`LESS` variable to some other value. Alternately,
|
||||||
@ -567,11 +567,11 @@ core.pager::
|
|||||||
global basis by setting the `core.pager` option.
|
global basis by setting the `core.pager` option.
|
||||||
Setting `core.pager` has no effect on the `LESS`
|
Setting `core.pager` has no effect on the `LESS`
|
||||||
environment variable behaviour above, so if you want
|
environment variable behaviour above, so if you want
|
||||||
to override git's default settings this way, you need
|
to override Git's default settings this way, you need
|
||||||
to be explicit. For example, to disable the S option
|
to be explicit. For example, to disable the S option
|
||||||
in a backward compatible manner, set `core.pager`
|
in a backward compatible manner, set `core.pager`
|
||||||
to `less -+S`. This will be passed to the shell by
|
to `less -+S`. This will be passed to the shell by
|
||||||
git, which will translate the final command to
|
Git, which will translate the final command to
|
||||||
`LESS=FRSX less -+S`.
|
`LESS=FRSX less -+S`.
|
||||||
|
|
||||||
core.whitespace::
|
core.whitespace::
|
||||||
@ -600,7 +600,7 @@ core.whitespace::
|
|||||||
does not trigger if the character before such a carriage-return
|
does not trigger if the character before such a carriage-return
|
||||||
is not a whitespace (not enabled by default).
|
is not a whitespace (not enabled by default).
|
||||||
* `tabwidth=<n>` tells how many character positions a tab occupies; this
|
* `tabwidth=<n>` tells how many character positions a tab occupies; this
|
||||||
is relevant for `indent-with-non-tab` and when git fixes `tab-in-indent`
|
is relevant for `indent-with-non-tab` and when Git fixes `tab-in-indent`
|
||||||
errors. The default tab width is 8. Allowed values are 1 to 63.
|
errors. The default tab width is 8. Allowed values are 1 to 63.
|
||||||
|
|
||||||
core.fsyncobjectfiles::
|
core.fsyncobjectfiles::
|
||||||
@ -616,7 +616,7 @@ core.preloadindex::
|
|||||||
+
|
+
|
||||||
This can speed up operations like 'git diff' and 'git status' especially
|
This can speed up operations like 'git diff' and 'git status' especially
|
||||||
on filesystems like NFS that have weak caching semantics and thus
|
on filesystems like NFS that have weak caching semantics and thus
|
||||||
relatively high IO latencies. With this set to 'true', git will do the
|
relatively high IO latencies. With this set to 'true', Git will do the
|
||||||
index comparison to the filesystem data in parallel, allowing
|
index comparison to the filesystem data in parallel, allowing
|
||||||
overlapping IO's.
|
overlapping IO's.
|
||||||
|
|
||||||
@ -652,9 +652,9 @@ add.ignore-errors::
|
|||||||
add.ignoreErrors::
|
add.ignoreErrors::
|
||||||
Tells 'git add' to continue adding files when some files cannot be
|
Tells 'git add' to continue adding files when some files cannot be
|
||||||
added due to indexing errors. Equivalent to the '--ignore-errors'
|
added due to indexing errors. Equivalent to the '--ignore-errors'
|
||||||
option of linkgit:git-add[1]. Older versions of git accept only
|
option of linkgit:git-add[1]. Older versions of Git accept only
|
||||||
`add.ignore-errors`, which does not follow the usual naming
|
`add.ignore-errors`, which does not follow the usual naming
|
||||||
convention for configuration variables. Newer versions of git
|
convention for configuration variables. Newer versions of Git
|
||||||
honor `add.ignoreErrors` as well.
|
honor `add.ignoreErrors` as well.
|
||||||
|
|
||||||
alias.*::
|
alias.*::
|
||||||
@ -662,7 +662,7 @@ alias.*::
|
|||||||
after defining "alias.last = cat-file commit HEAD", the invocation
|
after defining "alias.last = cat-file commit HEAD", the invocation
|
||||||
"git last" is equivalent to "git cat-file commit HEAD". To avoid
|
"git last" is equivalent to "git cat-file commit HEAD". To avoid
|
||||||
confusion and troubles with script usage, aliases that
|
confusion and troubles with script usage, aliases that
|
||||||
hide existing git commands are ignored. Arguments are split by
|
hide existing Git commands are ignored. Arguments are split by
|
||||||
spaces, the usual shell quoting and escaping is supported.
|
spaces, the usual shell quoting and escaping is supported.
|
||||||
quote pair and a backslash can be used to quote them.
|
quote pair and a backslash can be used to quote them.
|
||||||
+
|
+
|
||||||
@ -709,7 +709,7 @@ branch.autosetupmerge::
|
|||||||
|
|
||||||
branch.autosetuprebase::
|
branch.autosetuprebase::
|
||||||
When a new branch is created with 'git branch' or 'git checkout'
|
When a new branch is created with 'git branch' or 'git checkout'
|
||||||
that tracks another branch, this variable tells git to set
|
that tracks another branch, this variable tells Git to set
|
||||||
up pull to rebase instead of merge (see "branch.<name>.rebase").
|
up pull to rebase instead of merge (see "branch.<name>.rebase").
|
||||||
When `never`, rebase is never automatically set to true.
|
When `never`, rebase is never automatically set to true.
|
||||||
When `local`, rebase is set to true for tracked branches of
|
When `local`, rebase is set to true for tracked branches of
|
||||||
@ -890,7 +890,7 @@ color.status.<slot>::
|
|||||||
one of `header` (the header text of the status message),
|
one of `header` (the header text of the status message),
|
||||||
`added` or `updated` (files which are added but not committed),
|
`added` or `updated` (files which are added but not committed),
|
||||||
`changed` (files which are changed but not added in the index),
|
`changed` (files which are changed but not added in the index),
|
||||||
`untracked` (files which are not tracked by git),
|
`untracked` (files which are not tracked by Git),
|
||||||
`branch` (the current branch), or
|
`branch` (the current branch), or
|
||||||
`nobranch` (the color the 'no branch' warning is shown in, defaulting
|
`nobranch` (the color the 'no branch' warning is shown in, defaulting
|
||||||
to red). The values of these variables may be specified as in
|
to red). The values of these variables may be specified as in
|
||||||
@ -904,7 +904,7 @@ color.ui::
|
|||||||
to `always` if you want all output not intended for machine
|
to `always` if you want all output not intended for machine
|
||||||
consumption to use color, to `true` or `auto` if you want such
|
consumption to use color, to `true` or `auto` if you want such
|
||||||
output to use color when written to the terminal, or to `false` or
|
output to use color when written to the terminal, or to `false` or
|
||||||
`never` if you prefer git commands not to use color unless enabled
|
`never` if you prefer Git commands not to use color unless enabled
|
||||||
explicitly with some other configuration or the `--color` option.
|
explicitly with some other configuration or the `--color` option.
|
||||||
|
|
||||||
column.ui::
|
column.ui::
|
||||||
@ -1021,7 +1021,7 @@ fetch.fsckObjects::
|
|||||||
is used instead.
|
is used instead.
|
||||||
|
|
||||||
fetch.unpackLimit::
|
fetch.unpackLimit::
|
||||||
If the number of objects fetched over the git native
|
If the number of objects fetched over the Git native
|
||||||
transfer is below this
|
transfer is below this
|
||||||
limit, then the objects will be unpacked into loose object
|
limit, then the objects will be unpacked into loose object
|
||||||
files. However if the number of received objects equals or
|
files. However if the number of received objects equals or
|
||||||
@ -1061,7 +1061,7 @@ format.subjectprefix::
|
|||||||
|
|
||||||
format.signature::
|
format.signature::
|
||||||
The default for format-patch is to output a signature containing
|
The default for format-patch is to output a signature containing
|
||||||
the git version number. Use this variable to change that default.
|
the Git version number. Use this variable to change that default.
|
||||||
Set this variable to the empty string ("") to suppress
|
Set this variable to the empty string ("") to suppress
|
||||||
signature generation.
|
signature generation.
|
||||||
|
|
||||||
@ -1174,7 +1174,7 @@ gitcvs.logfile::
|
|||||||
gitcvs.usecrlfattr::
|
gitcvs.usecrlfattr::
|
||||||
If true, the server will look up the end-of-line conversion
|
If true, the server will look up the end-of-line conversion
|
||||||
attributes for files to determine the '-k' modes to use. If
|
attributes for files to determine the '-k' modes to use. If
|
||||||
the attributes force git to treat a file as text,
|
the attributes force Git to treat a file as text,
|
||||||
the '-k' mode will be left blank so CVS clients will
|
the '-k' mode will be left blank so CVS clients will
|
||||||
treat it as text. If they suppress text conversion, the file
|
treat it as text. If they suppress text conversion, the file
|
||||||
will be set with '-kb' mode, which suppresses any newline munging
|
will be set with '-kb' mode, which suppresses any newline munging
|
||||||
@ -1194,7 +1194,7 @@ gitcvs.allbinary::
|
|||||||
|
|
||||||
gitcvs.dbname::
|
gitcvs.dbname::
|
||||||
Database used by git-cvsserver to cache revision information
|
Database used by git-cvsserver to cache revision information
|
||||||
derived from the git repository. The exact meaning depends on the
|
derived from the Git repository. The exact meaning depends on the
|
||||||
used database driver, for SQLite (which is the default driver) this
|
used database driver, for SQLite (which is the default driver) this
|
||||||
is a filename. Supports variable substitution (see
|
is a filename. Supports variable substitution (see
|
||||||
linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
|
linkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).
|
||||||
@ -1406,7 +1406,7 @@ http.proxy::
|
|||||||
|
|
||||||
http.cookiefile::
|
http.cookiefile::
|
||||||
File containing previously stored cookie lines which should be used
|
File containing previously stored cookie lines which should be used
|
||||||
in the git http session, if they match the server. The file format
|
in the Git http session, if they match the server. The file format
|
||||||
of the file to read cookies from should be plain HTTP headers or
|
of the file to read cookies from should be plain HTTP headers or
|
||||||
the Netscape/Mozilla cookie file format (see linkgit:curl[1]).
|
the Netscape/Mozilla cookie file format (see linkgit:curl[1]).
|
||||||
NOTE that the file specified with http.cookiefile is only used as
|
NOTE that the file specified with http.cookiefile is only used as
|
||||||
@ -1428,7 +1428,7 @@ http.sslKey::
|
|||||||
variable.
|
variable.
|
||||||
|
|
||||||
http.sslCertPasswordProtected::
|
http.sslCertPasswordProtected::
|
||||||
Enable git's password prompt for the SSL certificate. Otherwise
|
Enable Git's password prompt for the SSL certificate. Otherwise
|
||||||
OpenSSL will prompt the user, possibly many times, if the
|
OpenSSL will prompt the user, possibly many times, if the
|
||||||
certificate or private key is encrypted. Can be overridden by the
|
certificate or private key is encrypted. Can be overridden by the
|
||||||
'GIT_SSL_CERT_PASSWORD_PROTECTED' environment variable.
|
'GIT_SSL_CERT_PASSWORD_PROTECTED' environment variable.
|
||||||
@ -1475,7 +1475,7 @@ http.noEPSV::
|
|||||||
|
|
||||||
http.useragent::
|
http.useragent::
|
||||||
The HTTP USER_AGENT string presented to an HTTP server. The default
|
The HTTP USER_AGENT string presented to an HTTP server. The default
|
||||||
value represents the version of the client git such as git/1.7.1.
|
value represents the version of the client Git such as git/1.7.1.
|
||||||
This option allows you to override this value to a more common value
|
This option allows you to override this value to a more common value
|
||||||
such as Mozilla/4.0. This may be necessary, for instance, if
|
such as Mozilla/4.0. This may be necessary, for instance, if
|
||||||
connecting through a firewall that restricts HTTP connections to a set
|
connecting through a firewall that restricts HTTP connections to a set
|
||||||
@ -1483,7 +1483,7 @@ http.useragent::
|
|||||||
Can be overridden by the 'GIT_HTTP_USER_AGENT' environment variable.
|
Can be overridden by the 'GIT_HTTP_USER_AGENT' environment variable.
|
||||||
|
|
||||||
i18n.commitEncoding::
|
i18n.commitEncoding::
|
||||||
Character encoding the commit messages are stored in; git itself
|
Character encoding the commit messages are stored in; Git itself
|
||||||
does not care per se, but this information is necessary e.g. when
|
does not care per se, but this information is necessary e.g. when
|
||||||
importing commits from emails or in the gitk graphical history
|
importing commits from emails or in the gitk graphical history
|
||||||
browser (and possibly at other places in the future or in other
|
browser (and possibly at other places in the future or in other
|
||||||
@ -1621,7 +1621,7 @@ mergetool.keepBackup::
|
|||||||
`true` (i.e. keep the backup files).
|
`true` (i.e. keep the backup files).
|
||||||
|
|
||||||
mergetool.keepTemporaries::
|
mergetool.keepTemporaries::
|
||||||
When invoking a custom merge tool, git uses a set of temporary
|
When invoking a custom merge tool, Git uses a set of temporary
|
||||||
files to pass to the tool. If the tool returns an error and this
|
files to pass to the tool. If the tool returns an error and this
|
||||||
variable is set to `true`, then these temporary files will be
|
variable is set to `true`, then these temporary files will be
|
||||||
preserved, otherwise they will be removed after the tool has
|
preserved, otherwise they will be removed after the tool has
|
||||||
@ -1649,7 +1649,7 @@ displayed.
|
|||||||
|
|
||||||
notes.rewrite.<command>::
|
notes.rewrite.<command>::
|
||||||
When rewriting commits with <command> (currently `amend` or
|
When rewriting commits with <command> (currently `amend` or
|
||||||
`rebase`) and this variable is set to `true`, git
|
`rebase`) and this variable is set to `true`, Git
|
||||||
automatically copies your notes from the original to the
|
automatically copies your notes from the original to the
|
||||||
rewritten commit. Defaults to `true`, but see
|
rewritten commit. Defaults to `true`, but see
|
||||||
"notes.rewriteRef" below.
|
"notes.rewriteRef" below.
|
||||||
@ -1729,7 +1729,7 @@ pack.threads::
|
|||||||
warning. This is meant to reduce packing time on multiprocessor
|
warning. This is meant to reduce packing time on multiprocessor
|
||||||
machines. The required amount of memory for the delta search window
|
machines. The required amount of memory for the delta search window
|
||||||
is however multiplied by the number of threads.
|
is however multiplied by the number of threads.
|
||||||
Specifying 0 will cause git to auto-detect the number of CPU's
|
Specifying 0 will cause Git to auto-detect the number of CPU's
|
||||||
and set the number of threads accordingly.
|
and set the number of threads accordingly.
|
||||||
|
|
||||||
pack.indexVersion::
|
pack.indexVersion::
|
||||||
@ -1741,11 +1741,11 @@ pack.indexVersion::
|
|||||||
and this config option ignored whenever the corresponding pack is
|
and this config option ignored whenever the corresponding pack is
|
||||||
larger than 2 GB.
|
larger than 2 GB.
|
||||||
+
|
+
|
||||||
If you have an old git that does not understand the version 2 `*.idx` file,
|
If you have an old Git that does not understand the version 2 `*.idx` file,
|
||||||
cloning or fetching over a non native protocol (e.g. "http" and "rsync")
|
cloning or fetching over a non native protocol (e.g. "http" and "rsync")
|
||||||
that will copy both `*.pack` file and corresponding `*.idx` file from the
|
that will copy both `*.pack` file and corresponding `*.idx` file from the
|
||||||
other side may give you a repository that cannot be accessed with your
|
other side may give you a repository that cannot be accessed with your
|
||||||
older version of git. If the `*.pack` file is smaller than 2 GB, however,
|
older version of Git. If the `*.pack` file is smaller than 2 GB, however,
|
||||||
you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
|
you can use linkgit:git-index-pack[1] on the *.pack file to regenerate
|
||||||
the `*.idx` file.
|
the `*.idx` file.
|
||||||
|
|
||||||
@ -1760,7 +1760,7 @@ pack.packSizeLimit::
|
|||||||
|
|
||||||
pager.<cmd>::
|
pager.<cmd>::
|
||||||
If the value is boolean, turns on or off pagination of the
|
If the value is boolean, turns on or off pagination of the
|
||||||
output of a particular git subcommand when writing to a tty.
|
output of a particular Git subcommand when writing to a tty.
|
||||||
Otherwise, turns on pagination for the subcommand using the
|
Otherwise, turns on pagination for the subcommand using the
|
||||||
pager specified by the value of `pager.<cmd>`. If `--paginate`
|
pager specified by the value of `pager.<cmd>`. If `--paginate`
|
||||||
or `--no-pager` is specified on the command line, it takes
|
or `--no-pager` is specified on the command line, it takes
|
||||||
@ -1795,7 +1795,7 @@ pull.twohead::
|
|||||||
The default merge strategy to use when pulling a single branch.
|
The default merge strategy to use when pulling a single branch.
|
||||||
|
|
||||||
push.default::
|
push.default::
|
||||||
Defines the action git push should take if no refspec is given
|
Defines the action `git push` should take if no refspec is given
|
||||||
on the command line, no refspec is configured in the remote, and
|
on the command line, no refspec is configured in the remote, and
|
||||||
no refspec is implied by any of the options given on the command
|
no refspec is implied by any of the options given on the command
|
||||||
line. Possible values are:
|
line. Possible values are:
|
||||||
@ -1935,7 +1935,7 @@ remote.<name>.tagopt::
|
|||||||
linkgit:git-fetch[1].
|
linkgit:git-fetch[1].
|
||||||
|
|
||||||
remote.<name>.vcs::
|
remote.<name>.vcs::
|
||||||
Setting this to a value <vcs> will cause git to interact with
|
Setting this to a value <vcs> will cause Git to interact with
|
||||||
the remote with the git-remote-<vcs> helper.
|
the remote with the git-remote-<vcs> helper.
|
||||||
|
|
||||||
remotes.<group>::
|
remotes.<group>::
|
||||||
@ -1945,9 +1945,9 @@ remotes.<group>::
|
|||||||
repack.usedeltabaseoffset::
|
repack.usedeltabaseoffset::
|
||||||
By default, linkgit:git-repack[1] creates packs that use
|
By default, linkgit:git-repack[1] creates packs that use
|
||||||
delta-base offset. If you need to share your repository with
|
delta-base offset. If you need to share your repository with
|
||||||
git older than version 1.4.4, either directly or via a dumb
|
Git older than version 1.4.4, either directly or via a dumb
|
||||||
protocol such as http, then you need to set this option to
|
protocol such as http, then you need to set this option to
|
||||||
"false" and repack. Access from old git versions over the
|
"false" and repack. Access from old Git versions over the
|
||||||
native protocol are unaffected by this option.
|
native protocol are unaffected by this option.
|
||||||
|
|
||||||
rerere.autoupdate::
|
rerere.autoupdate::
|
||||||
@ -2016,7 +2016,7 @@ showbranch.default::
|
|||||||
status.relativePaths::
|
status.relativePaths::
|
||||||
By default, linkgit:git-status[1] shows paths relative to the
|
By default, linkgit:git-status[1] shows paths relative to the
|
||||||
current directory. Setting this variable to `false` shows paths
|
current directory. Setting this variable to `false` shows paths
|
||||||
relative to the repository root (this was the default for git
|
relative to the repository root (this was the default for Git
|
||||||
prior to v1.5.4).
|
prior to v1.5.4).
|
||||||
|
|
||||||
status.showUntrackedFiles::
|
status.showUntrackedFiles::
|
||||||
@ -2103,7 +2103,7 @@ url.<base>.insteadOf::
|
|||||||
large number of repositories, and serves them with multiple
|
large number of repositories, and serves them with multiple
|
||||||
access methods, and some users need to use different access
|
access methods, and some users need to use different access
|
||||||
methods, this feature allows people to specify any of the
|
methods, this feature allows people to specify any of the
|
||||||
equivalent URLs and have git automatically rewrite the URL to
|
equivalent URLs and have Git automatically rewrite the URL to
|
||||||
the best alternative for the particular user, even for a
|
the best alternative for the particular user, even for a
|
||||||
never-before-seen repository on the site. When more than one
|
never-before-seen repository on the site. When more than one
|
||||||
insteadOf strings match a given URL, the longest match is used.
|
insteadOf strings match a given URL, the longest match is used.
|
||||||
@ -2114,11 +2114,11 @@ url.<base>.pushInsteadOf::
|
|||||||
resulting URL will be pushed to. In cases where some site serves
|
resulting URL will be pushed to. In cases where some site serves
|
||||||
a large number of repositories, and serves them with multiple
|
a large number of repositories, and serves them with multiple
|
||||||
access methods, some of which do not allow push, this feature
|
access methods, some of which do not allow push, this feature
|
||||||
allows people to specify a pull-only URL and have git
|
allows people to specify a pull-only URL and have Git
|
||||||
automatically use an appropriate URL to push, even for a
|
automatically use an appropriate URL to push, even for a
|
||||||
never-before-seen repository on the site. When more than one
|
never-before-seen repository on the site. When more than one
|
||||||
pushInsteadOf strings match a given URL, the longest match is
|
pushInsteadOf strings match a given URL, the longest match is
|
||||||
used. If a remote has an explicit pushurl, git will ignore this
|
used. If a remote has an explicit pushurl, Git will ignore this
|
||||||
setting for that remote.
|
setting for that remote.
|
||||||
|
|
||||||
user.email::
|
user.email::
|
||||||
|
@ -99,7 +99,7 @@ diff.renameLimit::
|
|||||||
detection; equivalent to the 'git diff' option '-l'.
|
detection; equivalent to the 'git diff' option '-l'.
|
||||||
|
|
||||||
diff.renames::
|
diff.renames::
|
||||||
Tells git to detect renames. If set to any boolean value, it
|
Tells Git to detect renames. If set to any boolean value, it
|
||||||
will enable basic rename detection. If set to "copies" or
|
will enable basic rename detection. If set to "copies" or
|
||||||
"copy", it will detect copies, as well.
|
"copy", it will detect copies, as well.
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ few lines that happen to match textually as the context, but as a
|
|||||||
single deletion of everything old followed by a single insertion of
|
single deletion of everything old followed by a single insertion of
|
||||||
everything new, and the number `m` controls this aspect of the -B
|
everything new, and the number `m` controls this aspect of the -B
|
||||||
option (defaults to 60%). `-B/70%` specifies that less than 30% of the
|
option (defaults to 60%). `-B/70%` specifies that less than 30% of the
|
||||||
original should remain in the result for git to consider it a total
|
original should remain in the result for Git to consider it a total
|
||||||
rewrite (i.e. otherwise the resulting patch will be a series of
|
rewrite (i.e. otherwise the resulting patch will be a series of
|
||||||
deletion and insertion mixed together with context lines).
|
deletion and insertion mixed together with context lines).
|
||||||
+
|
+
|
||||||
@ -307,7 +307,7 @@ ifdef::git-log[]
|
|||||||
endif::git-log[]
|
endif::git-log[]
|
||||||
If `n` is specified, it is a threshold on the similarity
|
If `n` is specified, it is a threshold on the similarity
|
||||||
index (i.e. amount of addition/deletions compared to the
|
index (i.e. amount of addition/deletions compared to the
|
||||||
file's size). For example, `-M90%` means git should consider a
|
file's size). For example, `-M90%` means Git should consider a
|
||||||
delete/add pair to be a rename if more than 90% of the file
|
delete/add pair to be a rename if more than 90% of the file
|
||||||
hasn't changed. Without a `%` sign, the number is to be read as
|
hasn't changed. Without a `%` sign, the number is to be read as
|
||||||
a fraction, with a decimal point before it. I.e., `-M5` becomes
|
a fraction, with a decimal point before it. I.e., `-M5` becomes
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
Everyday GIT With 20 Commands Or So
|
Everyday Git With 20 Commands Or So
|
||||||
===================================
|
===================================
|
||||||
|
|
||||||
<<Individual Developer (Standalone)>> commands are essential for
|
<<Individual Developer (Standalone)>> commands are essential for
|
||||||
@ -12,7 +12,7 @@ commands in addition to the above.
|
|||||||
|
|
||||||
<<Repository Administration>> commands are for system
|
<<Repository Administration>> commands are for system
|
||||||
administrators who are responsible for the care and feeding
|
administrators who are responsible for the care and feeding
|
||||||
of git repositories.
|
of Git repositories.
|
||||||
|
|
||||||
|
|
||||||
Individual Developer (Standalone)[[Individual Developer (Standalone)]]
|
Individual Developer (Standalone)[[Individual Developer (Standalone)]]
|
||||||
@ -87,7 +87,7 @@ $ git log v2.43.. curses/ <12>
|
|||||||
+
|
+
|
||||||
<1> create a new topic branch.
|
<1> create a new topic branch.
|
||||||
<2> revert your botched changes in `curses/ux_audio_oss.c`.
|
<2> revert your botched changes in `curses/ux_audio_oss.c`.
|
||||||
<3> you need to tell git if you added a new file; removal and
|
<3> you need to tell Git if you added a new file; removal and
|
||||||
modification will be caught if you do `git commit -a` later.
|
modification will be caught if you do `git commit -a` later.
|
||||||
<4> to see what changes you are committing.
|
<4> to see what changes you are committing.
|
||||||
<5> commit everything as you have tested, with your sign-off.
|
<5> commit everything as you have tested, with your sign-off.
|
||||||
@ -229,7 +229,7 @@ commands in addition to the ones needed by participants.
|
|||||||
Examples
|
Examples
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
|
||||||
My typical GIT day.::
|
My typical Git day.::
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ git status <1>
|
$ git status <1>
|
||||||
@ -332,7 +332,7 @@ Run git-daemon to serve /pub/scm from xinetd.::
|
|||||||
------------
|
------------
|
||||||
$ cat /etc/xinetd.d/git-daemon
|
$ cat /etc/xinetd.d/git-daemon
|
||||||
# default: off
|
# default: off
|
||||||
# description: The git server offers access to git repositories
|
# description: The Git server offers access to Git repositories
|
||||||
service git
|
service git
|
||||||
{
|
{
|
||||||
disable = no
|
disable = no
|
||||||
|
@ -24,7 +24,7 @@ Reads the supplied diff output (i.e. "a patch") and applies it to files.
|
|||||||
With the `--index` option the patch is also applied to the index, and
|
With the `--index` option the patch is also applied to the index, and
|
||||||
with the `--cached` option the patch is only applied to the index.
|
with the `--cached` option the patch is only applied to the index.
|
||||||
Without these options, the command applies the patch only to files,
|
Without these options, the command applies the patch only to files,
|
||||||
and does not require them to be in a git repository.
|
and does not require them to be in a Git repository.
|
||||||
|
|
||||||
This command applies the patch but does not create a commit. Use
|
This command applies the patch but does not create a commit. Use
|
||||||
linkgit:git-am[1] to create commits from patches generated by
|
linkgit:git-am[1] to create commits from patches generated by
|
||||||
@ -198,7 +198,7 @@ behavior:
|
|||||||
* `fix` outputs warnings for a few such errors, and applies the
|
* `fix` outputs warnings for a few such errors, and applies the
|
||||||
patch after fixing them (`strip` is a synonym --- the tool
|
patch after fixing them (`strip` is a synonym --- the tool
|
||||||
used to consider only trailing whitespace characters as errors, and the
|
used to consider only trailing whitespace characters as errors, and the
|
||||||
fix involved 'stripping' them, but modern gits do more).
|
fix involved 'stripping' them, but modern Gits do more).
|
||||||
* `error` outputs warnings for a few such errors, and refuses
|
* `error` outputs warnings for a few such errors, and refuses
|
||||||
to apply the patch.
|
to apply the patch.
|
||||||
* `error-all` is similar to `error` but shows all errors.
|
* `error-all` is similar to `error` but shows all errors.
|
||||||
|
@ -3,7 +3,7 @@ git-archimport(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-archimport - Import an Arch repository into git
|
git-archimport - Import an Arch repository into Git
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
@ -40,13 +40,13 @@ directory. To follow the development of a project that uses Arch, rerun
|
|||||||
incremental imports.
|
incremental imports.
|
||||||
|
|
||||||
While 'git archimport' will try to create sensible branch names for the
|
While 'git archimport' will try to create sensible branch names for the
|
||||||
archives that it imports, it is also possible to specify git branch names
|
archives that it imports, it is also possible to specify Git branch names
|
||||||
manually. To do so, write a git branch name after each <archive/branch>
|
manually. To do so, write a Git branch name after each <archive/branch>
|
||||||
parameter, separated by a colon. This way, you can shorten the Arch
|
parameter, separated by a colon. This way, you can shorten the Arch
|
||||||
branch names and convert Arch jargon to git jargon, for example mapping a
|
branch names and convert Arch jargon to Git jargon, for example mapping a
|
||||||
"PROJECT{litdd}devo{litdd}VERSION" branch to "master".
|
"PROJECT{litdd}devo{litdd}VERSION" branch to "master".
|
||||||
|
|
||||||
Associating multiple Arch branches to one git branch is possible; the
|
Associating multiple Arch branches to one Git branch is possible; the
|
||||||
result will make the most sense only if no commits are made to the first
|
result will make the most sense only if no commits are made to the first
|
||||||
branch, after the second branch is created. Still, this is useful to
|
branch, after the second branch is created. Still, this is useful to
|
||||||
convert Arch repositories that had been rotated periodically.
|
convert Arch repositories that had been rotated periodically.
|
||||||
@ -54,14 +54,14 @@ convert Arch repositories that had been rotated periodically.
|
|||||||
|
|
||||||
MERGES
|
MERGES
|
||||||
------
|
------
|
||||||
Patch merge data from Arch is used to mark merges in git as well. git
|
Patch merge data from Arch is used to mark merges in Git as well. Git
|
||||||
does not care much about tracking patches, and only considers a merge when a
|
does not care much about tracking patches, and only considers a merge when a
|
||||||
branch incorporates all the commits since the point they forked. The end result
|
branch incorporates all the commits since the point they forked. The end result
|
||||||
is that git will have a good idea of how far branches have diverged. So the
|
is that Git will have a good idea of how far branches have diverged. So the
|
||||||
import process does lose some patch-trading metadata.
|
import process does lose some patch-trading metadata.
|
||||||
|
|
||||||
Fortunately, when you try and merge branches imported from Arch,
|
Fortunately, when you try and merge branches imported from Arch,
|
||||||
git will find a good merge base, and it has a good chance of identifying
|
Git will find a good merge base, and it has a good chance of identifying
|
||||||
patches that have been traded out-of-sequence between the branches.
|
patches that have been traded out-of-sequence between the branches.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
@ -128,7 +128,7 @@ export-ignore::
|
|||||||
added to archive files. See linkgit:gitattributes[5] for details.
|
added to archive files. See linkgit:gitattributes[5] for details.
|
||||||
|
|
||||||
export-subst::
|
export-subst::
|
||||||
If the attribute export-subst is set for a file then git will
|
If the attribute export-subst is set for a file then Git will
|
||||||
expand several placeholders when adding this file to an archive.
|
expand several placeholders when adding this file to an archive.
|
||||||
See linkgit:gitattributes[5] for details.
|
See linkgit:gitattributes[5] for details.
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ Note that the example that we will use is really a toy example, we
|
|||||||
will be looking for the first commit that has a version like
|
will be looking for the first commit that has a version like
|
||||||
"2.6.26-something", that is the commit that has a "SUBLEVEL = 26" line
|
"2.6.26-something", that is the commit that has a "SUBLEVEL = 26" line
|
||||||
in the top level Makefile. This is a toy example because there are
|
in the top level Makefile. This is a toy example because there are
|
||||||
better ways to find this commit with git than using "git bisect" (for
|
better ways to find this commit with Git than using "git bisect" (for
|
||||||
example "git blame" or "git log -S<string>").
|
example "git blame" or "git log -S<string>").
|
||||||
|
|
||||||
Driving a bisection manually
|
Driving a bisection manually
|
||||||
@ -455,7 +455,7 @@ So only the W and B commits will be kept. Because commits X and Y will
|
|||||||
have been removed by rules a) and b) respectively, and because commits
|
have been removed by rules a) and b) respectively, and because commits
|
||||||
G are removed by rule b) too.
|
G are removed by rule b) too.
|
||||||
|
|
||||||
Note for git users, that it is equivalent as keeping only the commit
|
Note for Git users, that it is equivalent as keeping only the commit
|
||||||
given by:
|
given by:
|
||||||
|
|
||||||
-------------
|
-------------
|
||||||
@ -710,8 +710,8 @@ Skip algorithm discussed
|
|||||||
After step 7) (in the skip algorithm), we could check if the second
|
After step 7) (in the skip algorithm), we could check if the second
|
||||||
commit has been skipped and return it if it is not the case. And in
|
commit has been skipped and return it if it is not the case. And in
|
||||||
fact that was the algorithm we used from when "git bisect skip" was
|
fact that was the algorithm we used from when "git bisect skip" was
|
||||||
developed in git version 1.5.4 (released on February 1st 2008) until
|
developed in Git version 1.5.4 (released on February 1st 2008) until
|
||||||
git version 1.6.4 (released July 29th 2009).
|
Git version 1.6.4 (released July 29th 2009).
|
||||||
|
|
||||||
But Ingo Molnar and H. Peter Anvin (another well known linux kernel
|
But Ingo Molnar and H. Peter Anvin (another well known linux kernel
|
||||||
developer) both complained that sometimes the best bisection points
|
developer) both complained that sometimes the best bisection points
|
||||||
@ -1025,10 +1025,10 @@ And here is what Andreas said about this work-flow <<5>>:
|
|||||||
_____________
|
_____________
|
||||||
To give some hard figures, we used to have an average report-to-fix
|
To give some hard figures, we used to have an average report-to-fix
|
||||||
cycle of 142.6 hours (according to our somewhat weird bug-tracker
|
cycle of 142.6 hours (according to our somewhat weird bug-tracker
|
||||||
which just measures wall-clock time). Since we moved to git, we've
|
which just measures wall-clock time). Since we moved to Git, we've
|
||||||
lowered that to 16.2 hours. Primarily because we can stay on top of
|
lowered that to 16.2 hours. Primarily because we can stay on top of
|
||||||
the bug fixing now, and because everyone's jockeying to get to fix
|
the bug fixing now, and because everyone's jockeying to get to fix
|
||||||
bugs (we're quite proud of how lazy we are to let git find the bugs
|
bugs (we're quite proud of how lazy we are to let Git find the bugs
|
||||||
for us). Each new release results in ~40% fewer bugs (almost certainly
|
for us). Each new release results in ~40% fewer bugs (almost certainly
|
||||||
due to how we now feel about writing tests).
|
due to how we now feel about writing tests).
|
||||||
_____________
|
_____________
|
||||||
@ -1228,9 +1228,9 @@ commits in already released history, for example to change the commit
|
|||||||
message or the author. And it can also be used instead of git "grafts"
|
message or the author. And it can also be used instead of git "grafts"
|
||||||
to link a repository with another old repository.
|
to link a repository with another old repository.
|
||||||
|
|
||||||
In fact it's this last feature that "sold" it to the git community, so
|
In fact it's this last feature that "sold" it to the Git community, so
|
||||||
it is now in the "master" branch of git's git repository and it should
|
it is now in the "master" branch of Git's Git repository and it should
|
||||||
be released in git 1.6.5 in October or November 2009.
|
be released in Git 1.6.5 in October or November 2009.
|
||||||
|
|
||||||
One problem with "git replace" is that currently it stores all the
|
One problem with "git replace" is that currently it stores all the
|
||||||
replacements refs in "refs/replace/", but it would be perhaps better
|
replacements refs in "refs/replace/", but it would be perhaps better
|
||||||
@ -1324,7 +1324,7 @@ Acknowledgements
|
|||||||
----------------
|
----------------
|
||||||
|
|
||||||
Many thanks to Junio Hamano for his help in reviewing this paper, for
|
Many thanks to Junio Hamano for his help in reviewing this paper, for
|
||||||
reviewing the patches I sent to the git mailing list, for discussing
|
reviewing the patches I sent to the Git mailing list, for discussing
|
||||||
some ideas and helping me improve them, for improving "git bisect" a
|
some ideas and helping me improve them, for improving "git bisect" a
|
||||||
lot and for his awesome work in maintaining and developing Git.
|
lot and for his awesome work in maintaining and developing Git.
|
||||||
|
|
||||||
@ -1337,7 +1337,7 @@ Many thanks to Linus Torvalds for inventing, developing and
|
|||||||
evangelizing "git bisect", Git and Linux.
|
evangelizing "git bisect", Git and Linux.
|
||||||
|
|
||||||
Many thanks to the many other great people who helped one way or
|
Many thanks to the many other great people who helped one way or
|
||||||
another when I worked on git, especially to Andreas Ericsson, Johannes
|
another when I worked on Git, especially to Andreas Ericsson, Johannes
|
||||||
Schindelin, H. Peter Anvin, Daniel Barkalow, Bill Lear, John Hawley,
|
Schindelin, H. Peter Anvin, Daniel Barkalow, Bill Lear, John Hawley,
|
||||||
Shawn O. Pierce, Jeff King, Sam Vilain, Jon Seymour.
|
Shawn O. Pierce, Jeff King, Sam Vilain, Jon Seymour.
|
||||||
|
|
||||||
|
@ -169,14 +169,14 @@ the revision as good or bad in the usual manner.
|
|||||||
Bisect skip
|
Bisect skip
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
Instead of choosing by yourself a nearby commit, you can ask git
|
Instead of choosing by yourself a nearby commit, you can ask Git
|
||||||
to do it for you by issuing the command:
|
to do it for you by issuing the command:
|
||||||
|
|
||||||
------------
|
------------
|
||||||
$ git bisect skip # Current version cannot be tested
|
$ git bisect skip # Current version cannot be tested
|
||||||
------------
|
------------
|
||||||
|
|
||||||
But git may eventually be unable to tell the first bad commit among
|
But Git may eventually be unable to tell the first bad commit among
|
||||||
a bad commit and one or more skipped commits.
|
a bad commit and one or more skipped commits.
|
||||||
|
|
||||||
You can even skip a range of commits, instead of just one commit,
|
You can even skip a range of commits, instead of just one commit,
|
||||||
|
@ -30,7 +30,7 @@ The report does not tell you anything about lines which have been deleted or
|
|||||||
replaced; you need to use a tool such as 'git diff' or the "pickaxe"
|
replaced; you need to use a tool such as 'git diff' or the "pickaxe"
|
||||||
interface briefly mentioned in the following paragraph.
|
interface briefly mentioned in the following paragraph.
|
||||||
|
|
||||||
Apart from supporting file annotation, git also supports searching the
|
Apart from supporting file annotation, Git also supports searching the
|
||||||
development history for when a code snippet occurred in a change. This makes it
|
development history for when a code snippet occurred in a change. This makes it
|
||||||
possible to track when a code snippet was added to a file, moved or copied
|
possible to track when a code snippet was added to a file, moved or copied
|
||||||
between files, and eventually deleted or replaced. It works by searching for
|
between files, and eventually deleted or replaced. It works by searching for
|
||||||
|
@ -45,7 +45,7 @@ Note that this will create the new branch, but it will not switch the
|
|||||||
working tree to it; use "git checkout <newbranch>" to switch to the
|
working tree to it; use "git checkout <newbranch>" to switch to the
|
||||||
new branch.
|
new branch.
|
||||||
|
|
||||||
When a local branch is started off a remote-tracking branch, git sets up the
|
When a local branch is started off a remote-tracking branch, Git sets up the
|
||||||
branch so that 'git pull' will appropriately merge from
|
branch so that 'git pull' will appropriately merge from
|
||||||
the remote-tracking branch. This behavior may be changed via the global
|
the remote-tracking branch. This behavior may be changed via the global
|
||||||
`branch.autosetupmerge` configuration flag. That setting can be
|
`branch.autosetupmerge` configuration flag. That setting can be
|
||||||
|
@ -19,7 +19,7 @@ DESCRIPTION
|
|||||||
|
|
||||||
Some workflows require that one or more branches of development on one
|
Some workflows require that one or more branches of development on one
|
||||||
machine be replicated on another machine, but the two machines cannot
|
machine be replicated on another machine, but the two machines cannot
|
||||||
be directly connected, and therefore the interactive git protocols (git,
|
be directly connected, and therefore the interactive Git protocols (git,
|
||||||
ssh, rsync, http) cannot be used. This command provides support for
|
ssh, rsync, http) cannot be used. This command provides support for
|
||||||
'git fetch' and 'git pull' to operate by packaging objects and references
|
'git fetch' and 'git pull' to operate by packaging objects and references
|
||||||
in an archive at the originating machine, then importing those into
|
in an archive at the originating machine, then importing those into
|
||||||
|
@ -18,14 +18,14 @@ DESCRIPTION
|
|||||||
Checks if a given 'refname' is acceptable, and exits with a non-zero
|
Checks if a given 'refname' is acceptable, and exits with a non-zero
|
||||||
status if it is not.
|
status if it is not.
|
||||||
|
|
||||||
A reference is used in git to specify branches and tags. A
|
A reference is used in Git to specify branches and tags. A
|
||||||
branch head is stored in the `refs/heads` hierarchy, while
|
branch head is stored in the `refs/heads` hierarchy, while
|
||||||
a tag is stored in the `refs/tags` hierarchy of the ref namespace
|
a tag is stored in the `refs/tags` hierarchy of the ref namespace
|
||||||
(typically in `$GIT_DIR/refs/heads` and `$GIT_DIR/refs/tags`
|
(typically in `$GIT_DIR/refs/heads` and `$GIT_DIR/refs/tags`
|
||||||
directories or, as entries in file `$GIT_DIR/packed-refs`
|
directories or, as entries in file `$GIT_DIR/packed-refs`
|
||||||
if refs are packed by `git gc`).
|
if refs are packed by `git gc`).
|
||||||
|
|
||||||
git imposes the following rules on how references are named:
|
Git imposes the following rules on how references are named:
|
||||||
|
|
||||||
. They can include slash `/` for hierarchical (directory)
|
. They can include slash `/` for hierarchical (directory)
|
||||||
grouping, but no slash-separated component can begin with a
|
grouping, but no slash-separated component can begin with a
|
||||||
|
@ -333,7 +333,7 @@ a---b---c---d branch 'master' (refers to commit 'd')
|
|||||||
tag 'v2.0' (refers to commit 'b')
|
tag 'v2.0' (refers to commit 'b')
|
||||||
------------
|
------------
|
||||||
|
|
||||||
In fact, we can perform all the normal git operations. But, let's look
|
In fact, we can perform all the normal Git operations. But, let's look
|
||||||
at what happens when we then checkout master:
|
at what happens when we then checkout master:
|
||||||
|
|
||||||
------------
|
------------
|
||||||
@ -350,7 +350,7 @@ a---b---c---d branch 'master' (refers to commit 'd')
|
|||||||
|
|
||||||
It is important to realize that at this point nothing refers to commit
|
It is important to realize that at this point nothing refers to commit
|
||||||
'f'. Eventually commit 'f' (and by extension commit 'e') will be deleted
|
'f'. Eventually commit 'f' (and by extension commit 'e') will be deleted
|
||||||
by the routine git garbage collection process, unless we create a reference
|
by the routine Git garbage collection process, unless we create a reference
|
||||||
before that happens. If we have not yet moved away from commit 'f',
|
before that happens. If we have not yet moved away from commit 'f',
|
||||||
any of these will create a reference to it:
|
any of these will create a reference to it:
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ DESCRIPTION
|
|||||||
Cleans the working tree by recursively removing files that are not
|
Cleans the working tree by recursively removing files that are not
|
||||||
under version control, starting from the current directory.
|
under version control, starting from the current directory.
|
||||||
|
|
||||||
Normally, only files unknown to git are removed, but if the '-x'
|
Normally, only files unknown to Git are removed, but if the '-x'
|
||||||
option is specified, ignored files are also removed. This can, for
|
option is specified, ignored files are also removed. This can, for
|
||||||
example, be useful to remove all build products.
|
example, be useful to remove all build products.
|
||||||
|
|
||||||
@ -27,13 +27,13 @@ OPTIONS
|
|||||||
-------
|
-------
|
||||||
-d::
|
-d::
|
||||||
Remove untracked directories in addition to untracked files.
|
Remove untracked directories in addition to untracked files.
|
||||||
If an untracked directory is managed by a different git
|
If an untracked directory is managed by a different Git
|
||||||
repository, it is not removed by default. Use -f option twice
|
repository, it is not removed by default. Use -f option twice
|
||||||
if you really want to remove such a directory.
|
if you really want to remove such a directory.
|
||||||
|
|
||||||
-f::
|
-f::
|
||||||
--force::
|
--force::
|
||||||
If the git configuration variable clean.requireForce is not set
|
If the Git configuration variable clean.requireForce is not set
|
||||||
to false, 'git clean' will refuse to run unless given -f or -n.
|
to false, 'git clean' will refuse to run unless given -f or -n.
|
||||||
|
|
||||||
-n::
|
-n::
|
||||||
@ -60,7 +60,7 @@ OPTIONS
|
|||||||
working directory to test a clean build.
|
working directory to test a clean build.
|
||||||
|
|
||||||
-X::
|
-X::
|
||||||
Remove only files ignored by git. This may be useful to rebuild
|
Remove only files ignored by Git. This may be useful to rebuild
|
||||||
everything from scratch, but keep manually created files.
|
everything from scratch, but keep manually created files.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
|
@ -43,7 +43,7 @@ OPTIONS
|
|||||||
--local::
|
--local::
|
||||||
-l::
|
-l::
|
||||||
When the repository to clone from is on a local machine,
|
When the repository to clone from is on a local machine,
|
||||||
this flag bypasses the normal "git aware" transport
|
this flag bypasses the normal "Git aware" transport
|
||||||
mechanism and clones the repository by making a copy of
|
mechanism and clones the repository by making a copy of
|
||||||
HEAD and everything under objects and refs directories.
|
HEAD and everything under objects and refs directories.
|
||||||
The files under `.git/objects/` directory are hardlinked
|
The files under `.git/objects/` directory are hardlinked
|
||||||
@ -54,11 +54,11 @@ this is the default, and --local is essentially a no-op. If the
|
|||||||
repository is specified as a URL, then this flag is ignored (and we
|
repository is specified as a URL, then this flag is ignored (and we
|
||||||
never use the local optimizations). Specifying `--no-local` will
|
never use the local optimizations). Specifying `--no-local` will
|
||||||
override the default when `/path/to/repo` is given, using the regular
|
override the default when `/path/to/repo` is given, using the regular
|
||||||
git transport instead.
|
Git transport instead.
|
||||||
+
|
+
|
||||||
To force copying instead of hardlinking (which may be desirable if you
|
To force copying instead of hardlinking (which may be desirable if you
|
||||||
are trying to make a back-up of your repository), but still avoid the
|
are trying to make a back-up of your repository), but still avoid the
|
||||||
usual "git aware" transport mechanism, `--no-hardlinks` can be used.
|
usual "Git aware" transport mechanism, `--no-hardlinks` can be used.
|
||||||
|
|
||||||
--no-hardlinks::
|
--no-hardlinks::
|
||||||
Optimize the cloning process from a repository on a
|
Optimize the cloning process from a repository on a
|
||||||
@ -76,9 +76,9 @@ usual "git aware" transport mechanism, `--no-hardlinks` can be used.
|
|||||||
*NOTE*: this is a possibly dangerous operation; do *not* use
|
*NOTE*: this is a possibly dangerous operation; do *not* use
|
||||||
it unless you understand what it does. If you clone your
|
it unless you understand what it does. If you clone your
|
||||||
repository using this option and then delete branches (or use any
|
repository using this option and then delete branches (or use any
|
||||||
other git command that makes any existing commit unreferenced) in the
|
other Git command that makes any existing commit unreferenced) in the
|
||||||
source repository, some objects may become unreferenced (or dangling).
|
source repository, some objects may become unreferenced (or dangling).
|
||||||
These objects may be removed by normal git operations (such as `git commit`)
|
These objects may be removed by normal Git operations (such as `git commit`)
|
||||||
which automatically call `git gc --auto`. (See linkgit:git-gc[1].)
|
which automatically call `git gc --auto`. (See linkgit:git-gc[1].)
|
||||||
If these objects are removed and were referenced by the cloned repository,
|
If these objects are removed and were referenced by the cloned repository,
|
||||||
then the cloned repository will become corrupt.
|
then the cloned repository will become corrupt.
|
||||||
@ -125,7 +125,7 @@ objects from the source repository into a pack in the cloned repository.
|
|||||||
No checkout of HEAD is performed after the clone is complete.
|
No checkout of HEAD is performed after the clone is complete.
|
||||||
|
|
||||||
--bare::
|
--bare::
|
||||||
Make a 'bare' GIT repository. That is, instead of
|
Make a 'bare' Git repository. That is, instead of
|
||||||
creating `<directory>` and placing the administrative
|
creating `<directory>` and placing the administrative
|
||||||
files in `<directory>/.git`, make the `<directory>`
|
files in `<directory>/.git`, make the `<directory>`
|
||||||
itself the `$GIT_DIR`. This obviously implies the `-n`
|
itself the `$GIT_DIR`. This obviously implies the `-n`
|
||||||
@ -213,8 +213,8 @@ objects from the source repository into a pack in the cloned repository.
|
|||||||
--separate-git-dir=<git dir>::
|
--separate-git-dir=<git dir>::
|
||||||
Instead of placing the cloned repository where it is supposed
|
Instead of placing the cloned repository where it is supposed
|
||||||
to be, place the cloned repository at the specified directory,
|
to be, place the cloned repository at the specified directory,
|
||||||
then make a filesytem-agnostic git symbolic link to there.
|
then make a filesytem-agnostic Git symbolic link to there.
|
||||||
The result is git repository can be separated from working
|
The result is Git repository can be separated from working
|
||||||
tree.
|
tree.
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ While a tree represents a particular directory state of a working
|
|||||||
directory, a commit represents that state in "time", and explains how
|
directory, a commit represents that state in "time", and explains how
|
||||||
to get there.
|
to get there.
|
||||||
|
|
||||||
Normally a commit would identify a new "HEAD" state, and while git
|
Normally a commit would identify a new "HEAD" state, and while Git
|
||||||
doesn't care where you save the note about that state, in practice we
|
doesn't care where you save the note about that state, in practice we
|
||||||
tend to just write the result to the file that is pointed at by
|
tend to just write the result to the file that is pointed at by
|
||||||
`.git/HEAD`, so that we can always see what the last committed
|
`.git/HEAD`, so that we can always see what the last committed
|
||||||
|
@ -32,7 +32,7 @@ The content to be added can be specified in several ways:
|
|||||||
3. by listing files as arguments to the 'commit' command, in which
|
3. by listing files as arguments to the 'commit' command, in which
|
||||||
case the commit will ignore changes staged in the index, and instead
|
case the commit will ignore changes staged in the index, and instead
|
||||||
record the current content of the listed files (which must already
|
record the current content of the listed files (which must already
|
||||||
be known to git);
|
be known to Git);
|
||||||
|
|
||||||
4. by using the -a switch with the 'commit' command to automatically
|
4. by using the -a switch with the 'commit' command to automatically
|
||||||
"add" changes from all known files (i.e. all files that are already
|
"add" changes from all known files (i.e. all files that are already
|
||||||
@ -59,7 +59,7 @@ OPTIONS
|
|||||||
--all::
|
--all::
|
||||||
Tell the command to automatically stage files that have
|
Tell the command to automatically stage files that have
|
||||||
been modified and deleted, but new files you have not
|
been modified and deleted, but new files you have not
|
||||||
told git about are not affected.
|
told Git about are not affected.
|
||||||
|
|
||||||
-p::
|
-p::
|
||||||
--patch::
|
--patch::
|
||||||
@ -404,7 +404,7 @@ Though not required, it's a good idea to begin the commit message
|
|||||||
with a single short (less than 50 character) line summarizing the
|
with a single short (less than 50 character) line summarizing the
|
||||||
change, followed by a blank line and then a more thorough description.
|
change, followed by a blank line and then a more thorough description.
|
||||||
The text up to the first blank line in a commit message is treated
|
The text up to the first blank line in a commit message is treated
|
||||||
as the commit title, and that title is used throughout git.
|
as the commit title, and that title is used throughout Git.
|
||||||
For example, linkgit:git-format-patch[1] turns a commit into email, and it uses
|
For example, linkgit:git-format-patch[1] turns a commit into email, and it uses
|
||||||
the title on the Subject line and the rest of the commit in the body.
|
the title on the Subject line and the rest of the commit in the body.
|
||||||
|
|
||||||
|
@ -14,13 +14,13 @@ git config credential.helper 'cache [options]'
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
This command caches credentials in memory for use by future git
|
This command caches credentials in memory for use by future Git
|
||||||
programs. The stored credentials never touch the disk, and are forgotten
|
programs. The stored credentials never touch the disk, and are forgotten
|
||||||
after a configurable timeout. The cache is accessible over a Unix
|
after a configurable timeout. The cache is accessible over a Unix
|
||||||
domain socket, restricted to the current user by filesystem permissions.
|
domain socket, restricted to the current user by filesystem permissions.
|
||||||
|
|
||||||
You probably don't want to invoke this command directly; it is meant to
|
You probably don't want to invoke this command directly; it is meant to
|
||||||
be used as a credential helper by other parts of git. See
|
be used as a credential helper by other parts of Git. See
|
||||||
linkgit:gitcredentials[7] or `EXAMPLES` below.
|
linkgit:gitcredentials[7] or `EXAMPLES` below.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
|
@ -20,7 +20,7 @@ security tradeoff, try linkgit:git-credential-cache[1], or find a helper
|
|||||||
that integrates with secure storage provided by your operating system.
|
that integrates with secure storage provided by your operating system.
|
||||||
|
|
||||||
This command stores credentials indefinitely on disk for use by future
|
This command stores credentials indefinitely on disk for use by future
|
||||||
git programs.
|
Git programs.
|
||||||
|
|
||||||
You probably don't want to invoke this command directly; it is meant to
|
You probably don't want to invoke this command directly; it is meant to
|
||||||
be used as a credential helper by other parts of git. See
|
be used as a credential helper by other parts of git. See
|
||||||
@ -63,11 +63,11 @@ stored on its own line as a URL like:
|
|||||||
https://user:pass@example.com
|
https://user:pass@example.com
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
When git needs authentication for a particular URL context,
|
When Git needs authentication for a particular URL context,
|
||||||
credential-store will consider that context a pattern to match against
|
credential-store will consider that context a pattern to match against
|
||||||
each entry in the credentials file. If the protocol, hostname, and
|
each entry in the credentials file. If the protocol, hostname, and
|
||||||
username (if we already have one) match, then the password is returned
|
username (if we already have one) match, then the password is returned
|
||||||
to git. See the discussion of configuration in linkgit:gitcredentials[7]
|
to Git. See the discussion of configuration in linkgit:gitcredentials[7]
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
|
@ -18,9 +18,9 @@ Git has an internal interface for storing and retrieving credentials
|
|||||||
from system-specific helpers, as well as prompting the user for
|
from system-specific helpers, as well as prompting the user for
|
||||||
usernames and passwords. The git-credential command exposes this
|
usernames and passwords. The git-credential command exposes this
|
||||||
interface to scripts which may want to retrieve, store, or prompt for
|
interface to scripts which may want to retrieve, store, or prompt for
|
||||||
credentials in the same manner as git. The design of this scriptable
|
credentials in the same manner as Git. The design of this scriptable
|
||||||
interface models the internal C API; see
|
interface models the internal C API; see
|
||||||
link:technical/api-credentials.txt[the git credential API] for more
|
link:technical/api-credentials.txt[the Git credential API] for more
|
||||||
background on the concepts.
|
background on the concepts.
|
||||||
|
|
||||||
git-credential takes an "action" option on the command-line (one of
|
git-credential takes an "action" option on the command-line (one of
|
||||||
@ -74,7 +74,7 @@ infomation it has):
|
|||||||
password=secr3t
|
password=secr3t
|
||||||
+
|
+
|
||||||
In most cases, this means the attributes given in the input will be
|
In most cases, this means the attributes given in the input will be
|
||||||
repeated in the output, but git may also modify the credential
|
repeated in the output, but Git may also modify the credential
|
||||||
description, for example by removing the `path` attribute when the
|
description, for example by removing the `path` attribute when the
|
||||||
protocol is HTTP(s) and `credential.useHttpPath` is false.
|
protocol is HTTP(s) and `credential.useHttpPath` is false.
|
||||||
+
|
+
|
||||||
|
@ -15,8 +15,8 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Exports a commit from GIT to a CVS checkout, making it easier
|
Exports a commit from Git to a CVS checkout, making it easier
|
||||||
to merge patches from a git repository into a CVS repository.
|
to merge patches from a Git repository into a CVS repository.
|
||||||
|
|
||||||
Specify the name of a CVS checkout using the -w switch or execute it
|
Specify the name of a CVS checkout using the -w switch or execute it
|
||||||
from the root of the CVS working copy. In the latter case GIT_DIR must
|
from the root of the CVS working copy. In the latter case GIT_DIR must
|
||||||
@ -71,7 +71,7 @@ OPTIONS
|
|||||||
-w::
|
-w::
|
||||||
Specify the location of the CVS checkout to use for the export. This
|
Specify the location of the CVS checkout to use for the export. This
|
||||||
option does not require GIT_DIR to be set before execution if the
|
option does not require GIT_DIR to be set before execution if the
|
||||||
current directory is within a git repository. The default is the
|
current directory is within a Git repository. The default is the
|
||||||
value of 'cvsexportcommit.cvsdir'.
|
value of 'cvsexportcommit.cvsdir'.
|
||||||
|
|
||||||
-W::
|
-W::
|
||||||
|
@ -24,7 +24,7 @@ performing a one-shot import of a CVS repository consider using
|
|||||||
link:http://cvs2svn.tigris.org/cvs2git.html[cvs2git] or
|
link:http://cvs2svn.tigris.org/cvs2git.html[cvs2git] or
|
||||||
link:https://github.com/BartMassey/parsecvs[parsecvs].
|
link:https://github.com/BartMassey/parsecvs[parsecvs].
|
||||||
|
|
||||||
Imports a CVS repository into git. It will either create a new
|
Imports a CVS repository into Git. It will either create a new
|
||||||
repository, or incrementally import into an existing one.
|
repository, or incrementally import into an existing one.
|
||||||
|
|
||||||
Splitting the CVS log into patch sets is done by 'cvsps'.
|
Splitting the CVS log into patch sets is done by 'cvsps'.
|
||||||
@ -65,18 +65,18 @@ OPTIONS
|
|||||||
`CVS/Repository`.
|
`CVS/Repository`.
|
||||||
|
|
||||||
-C <target-dir>::
|
-C <target-dir>::
|
||||||
The git repository to import to. If the directory doesn't
|
The Git repository to import to. If the directory doesn't
|
||||||
exist, it will be created. Default is the current directory.
|
exist, it will be created. Default is the current directory.
|
||||||
|
|
||||||
-r <remote>::
|
-r <remote>::
|
||||||
The git remote to import this CVS repository into.
|
The Git remote to import this CVS repository into.
|
||||||
Moves all CVS branches into remotes/<remote>/<branch>
|
Moves all CVS branches into remotes/<remote>/<branch>
|
||||||
akin to the way 'git clone' uses 'origin' by default.
|
akin to the way 'git clone' uses 'origin' by default.
|
||||||
|
|
||||||
-o <branch-for-HEAD>::
|
-o <branch-for-HEAD>::
|
||||||
When no remote is specified (via -r) the 'HEAD' branch
|
When no remote is specified (via -r) the 'HEAD' branch
|
||||||
from CVS is imported to the 'origin' branch within the git
|
from CVS is imported to the 'origin' branch within the Git
|
||||||
repository, as 'HEAD' already has a special meaning for git.
|
repository, as 'HEAD' already has a special meaning for Git.
|
||||||
When a remote is specified the 'HEAD' branch is named
|
When a remote is specified the 'HEAD' branch is named
|
||||||
remotes/<remote>/master mirroring 'git clone' behaviour.
|
remotes/<remote>/master mirroring 'git clone' behaviour.
|
||||||
Use this option if you want to import into a different
|
Use this option if you want to import into a different
|
||||||
|
@ -3,7 +3,7 @@ git-cvsserver(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-cvsserver - A CVS server emulator for git
|
git-cvsserver - A CVS server emulator for Git
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -60,7 +60,7 @@ unless '--export-all' was given, too.
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
This application is a CVS emulation layer for git.
|
This application is a CVS emulation layer for Git.
|
||||||
|
|
||||||
It is highly functional. However, not all methods are implemented,
|
It is highly functional. However, not all methods are implemented,
|
||||||
and for those methods that are implemented,
|
and for those methods that are implemented,
|
||||||
@ -72,9 +72,9 @@ plugin. Most functionality works fine with both of these clients.
|
|||||||
LIMITATIONS
|
LIMITATIONS
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
CVS clients cannot tag, branch or perform GIT merges.
|
CVS clients cannot tag, branch or perform Git merges.
|
||||||
|
|
||||||
'git-cvsserver' maps GIT branches to CVS modules. This is very different
|
'git-cvsserver' maps Git branches to CVS modules. This is very different
|
||||||
from what most CVS users would expect since in CVS modules usually represent
|
from what most CVS users would expect since in CVS modules usually represent
|
||||||
one or more directories.
|
one or more directories.
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ Then provide your password via the pserver method, for example:
|
|||||||
------
|
------
|
||||||
cvs -d:pserver:someuser:somepassword <at> server/path/repo.git co <HEAD_name>
|
cvs -d:pserver:someuser:somepassword <at> server/path/repo.git co <HEAD_name>
|
||||||
------
|
------
|
||||||
No special setup is needed for SSH access, other than having GIT tools
|
No special setup is needed for SSH access, other than having Git tools
|
||||||
in the PATH. If you have clients that do not accept the CVS_SERVER
|
in the PATH. If you have clients that do not accept the CVS_SERVER
|
||||||
environment variable, you can rename 'git-cvsserver' to `cvs`.
|
environment variable, you can rename 'git-cvsserver' to `cvs`.
|
||||||
|
|
||||||
@ -160,9 +160,9 @@ with CVS_SERVER (and shouldn't) as 'git-shell' understands `cvs` to mean
|
|||||||
Note: you need to ensure each user that is going to invoke 'git-cvsserver' has
|
Note: you need to ensure each user that is going to invoke 'git-cvsserver' has
|
||||||
write access to the log file and to the database (see
|
write access to the log file and to the database (see
|
||||||
<<dbbackend,Database Backend>>. If you want to offer write access over
|
<<dbbackend,Database Backend>>. If you want to offer write access over
|
||||||
SSH, the users of course also need write access to the git repository itself.
|
SSH, the users of course also need write access to the Git repository itself.
|
||||||
|
|
||||||
You also need to ensure that each repository is "bare" (without a git index
|
You also need to ensure that each repository is "bare" (without a Git index
|
||||||
file) for `cvs commit` to work. See linkgit:gitcvs-migration[7].
|
file) for `cvs commit` to work. See linkgit:gitcvs-migration[7].
|
||||||
|
|
||||||
[[configaccessmethod]]
|
[[configaccessmethod]]
|
||||||
@ -181,7 +181,7 @@ allowing access over SSH.
|
|||||||
3. If you didn't specify the CVSROOT/CVS_SERVER directly in the checkout command,
|
3. If you didn't specify the CVSROOT/CVS_SERVER directly in the checkout command,
|
||||||
automatically saving it in your 'CVS/Root' files, then you need to set them
|
automatically saving it in your 'CVS/Root' files, then you need to set them
|
||||||
explicitly in your environment. CVSROOT should be set as per normal, but the
|
explicitly in your environment. CVSROOT should be set as per normal, but the
|
||||||
directory should point at the appropriate git repo. As above, for SSH clients
|
directory should point at the appropriate Git repo. As above, for SSH clients
|
||||||
_not_ restricted to 'git-shell', CVS_SERVER should be set to 'git-cvsserver'.
|
_not_ restricted to 'git-shell', CVS_SERVER should be set to 'git-cvsserver'.
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
@ -197,7 +197,7 @@ allowing access over SSH.
|
|||||||
shell is bash, .bashrc may be a reasonable alternative.
|
shell is bash, .bashrc may be a reasonable alternative.
|
||||||
|
|
||||||
5. Clients should now be able to check out the project. Use the CVS 'module'
|
5. Clients should now be able to check out the project. Use the CVS 'module'
|
||||||
name to indicate what GIT 'head' you want to check out. This also sets the
|
name to indicate what Git 'head' you want to check out. This also sets the
|
||||||
name of your newly checked-out directory, unless you tell it otherwise with
|
name of your newly checked-out directory, unless you tell it otherwise with
|
||||||
`-d <dir_name>`. For example, this checks out 'master' branch to the
|
`-d <dir_name>`. For example, this checks out 'master' branch to the
|
||||||
`project-master` directory:
|
`project-master` directory:
|
||||||
@ -210,7 +210,7 @@ allowing access over SSH.
|
|||||||
Database Backend
|
Database Backend
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
'git-cvsserver' uses one database per git head (i.e. CVS module) to
|
'git-cvsserver' uses one database per Git head (i.e. CVS module) to
|
||||||
store information about the repository to maintain consistent
|
store information about the repository to maintain consistent
|
||||||
CVS revision numbers. The database needs to be
|
CVS revision numbers. The database needs to be
|
||||||
updated (i.e. written to) after every commit.
|
updated (i.e. written to) after every commit.
|
||||||
@ -225,7 +225,7 @@ the pserver method), 'git-cvsserver' should have write access to
|
|||||||
the database to work reliably (otherwise you need to make sure
|
the database to work reliably (otherwise you need to make sure
|
||||||
that the database is up-to-date any time 'git-cvsserver' is executed).
|
that the database is up-to-date any time 'git-cvsserver' is executed).
|
||||||
|
|
||||||
By default it uses SQLite databases in the git directory, named
|
By default it uses SQLite databases in the Git directory, named
|
||||||
`gitcvs.<module_name>.sqlite`. Note that the SQLite backend creates
|
`gitcvs.<module_name>.sqlite`. Note that the SQLite backend creates
|
||||||
temporary files in the same directory as the database file on
|
temporary files in the same directory as the database file on
|
||||||
write so it might not be enough to grant the users using
|
write so it might not be enough to grant the users using
|
||||||
@ -291,14 +291,14 @@ Variable substitution
|
|||||||
In `dbdriver` and `dbuser` you can use the following variables:
|
In `dbdriver` and `dbuser` you can use the following variables:
|
||||||
|
|
||||||
%G::
|
%G::
|
||||||
git directory name
|
Git directory name
|
||||||
%g::
|
%g::
|
||||||
git directory name, where all characters except for
|
Git directory name, where all characters except for
|
||||||
alpha-numeric ones, `.`, and `-` are replaced with
|
alpha-numeric ones, `.`, and `-` are replaced with
|
||||||
`_` (this should make it easier to use the directory
|
`_` (this should make it easier to use the directory
|
||||||
name in a filename if wanted)
|
name in a filename if wanted)
|
||||||
%m::
|
%m::
|
||||||
CVS module/git head name
|
CVS module/Git head name
|
||||||
%a::
|
%a::
|
||||||
access method (one of "ext" or "pserver")
|
access method (one of "ext" or "pserver")
|
||||||
%u::
|
%u::
|
||||||
|
@ -3,7 +3,7 @@ git-daemon(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-daemon - A really simple server for git repositories
|
git-daemon - A really simple server for Git repositories
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -22,12 +22,12 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
A really simple TCP git daemon that normally listens on port "DEFAULT_GIT_PORT"
|
A really simple TCP Git daemon that normally listens on port "DEFAULT_GIT_PORT"
|
||||||
aka 9418. It waits for a connection asking for a service, and will serve
|
aka 9418. It waits for a connection asking for a service, and will serve
|
||||||
that service if it is enabled.
|
that service if it is enabled.
|
||||||
|
|
||||||
It verifies that the directory has the magic file "git-daemon-export-ok", and
|
It verifies that the directory has the magic file "git-daemon-export-ok", and
|
||||||
it will refuse to export any git directory that hasn't explicitly been marked
|
it will refuse to export any Git directory that hasn't explicitly been marked
|
||||||
for export this way (unless the '--export-all' parameter is specified). If you
|
for export this way (unless the '--export-all' parameter is specified). If you
|
||||||
pass some directory paths as 'git daemon' arguments, you can further restrict
|
pass some directory paths as 'git daemon' arguments, you can further restrict
|
||||||
the offers to a whitelist comprising of those.
|
the offers to a whitelist comprising of those.
|
||||||
@ -37,7 +37,7 @@ By default, only `upload-pack` service is enabled, which serves
|
|||||||
from 'git fetch', 'git pull', and 'git clone'.
|
from 'git fetch', 'git pull', and 'git clone'.
|
||||||
|
|
||||||
This is ideally suited for read-only updates, i.e., pulling from
|
This is ideally suited for read-only updates, i.e., pulling from
|
||||||
git repositories.
|
Git repositories.
|
||||||
|
|
||||||
An `upload-archive` also exists to serve 'git archive'.
|
An `upload-archive` also exists to serve 'git archive'.
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ OPTIONS
|
|||||||
|
|
||||||
--base-path=<path>::
|
--base-path=<path>::
|
||||||
Remap all the path requests as relative to the given path.
|
Remap all the path requests as relative to the given path.
|
||||||
This is sort of "GIT root" - if you run 'git daemon' with
|
This is sort of "Git root" - if you run 'git daemon' with
|
||||||
'--base-path=/srv/git' on example.com, then if you later try to pull
|
'--base-path=/srv/git' on example.com, then if you later try to pull
|
||||||
'git://example.com/hello.git', 'git daemon' will interpret the path
|
'git://example.com/hello.git', 'git daemon' will interpret the path
|
||||||
as '/srv/git/hello.git'.
|
as '/srv/git/hello.git'.
|
||||||
@ -73,7 +73,7 @@ OPTIONS
|
|||||||
whitelist.
|
whitelist.
|
||||||
|
|
||||||
--export-all::
|
--export-all::
|
||||||
Allow pulling from all directories that look like GIT repositories
|
Allow pulling from all directories that look like Git repositories
|
||||||
(have the 'objects' and 'refs' subdirectories), even if they
|
(have the 'objects' and 'refs' subdirectories), even if they
|
||||||
do not have the 'git-daemon-export-ok' file.
|
do not have the 'git-daemon-export-ok' file.
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ closest tagname without any suffix:
|
|||||||
|
|
||||||
Note that the suffix you get if you type these commands today may be
|
Note that the suffix you get if you type these commands today may be
|
||||||
longer than what Linus saw above when he ran these commands, as your
|
longer than what Linus saw above when he ran these commands, as your
|
||||||
git repository may have new commits whose object names begin with
|
Git repository may have new commits whose object names begin with
|
||||||
975b that did not exist back then, and "-g975b" suffix alone may not
|
975b that did not exist back then, and "-g975b" suffix alone may not
|
||||||
be sufficient to disambiguate these commits.
|
be sufficient to disambiguate these commits.
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ between two files on disk.
|
|||||||
|
|
||||||
This form is to view the changes you made relative to
|
This form is to view the changes you made relative to
|
||||||
the index (staging area for the next commit). In other
|
the index (staging area for the next commit). In other
|
||||||
words, the differences are what you _could_ tell git to
|
words, the differences are what you _could_ tell Git to
|
||||||
further add to the index but you still haven't. You can
|
further add to the index but you still haven't. You can
|
||||||
stage these changes by using linkgit:git-add[1].
|
stage these changes by using linkgit:git-add[1].
|
||||||
+
|
+
|
||||||
|
@ -12,7 +12,7 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
'git difftool' is a git command that allows you to compare and edit files
|
'git difftool' is a Git command that allows you to compare and edit files
|
||||||
between revisions using common diff tools. 'git difftool' is a frontend
|
between revisions using common diff tools. 'git difftool' is a frontend
|
||||||
to 'git diff' and accepts the same options and arguments. See
|
to 'git diff' and accepts the same options and arguments. See
|
||||||
linkgit:git-diff[1].
|
linkgit:git-diff[1].
|
||||||
|
@ -80,7 +80,7 @@ Using --recurse-submodules can only fetch new commits in already checked
|
|||||||
out submodules right now. When e.g. upstream added a new submodule in the
|
out submodules right now. When e.g. upstream added a new submodule in the
|
||||||
just fetched commits of the superproject the submodule itself can not be
|
just fetched commits of the superproject the submodule itself can not be
|
||||||
fetched, making it impossible to check out that submodule later without
|
fetched, making it impossible to check out that submodule later without
|
||||||
having to do a fetch again. This is expected to be fixed in a future git
|
having to do a fetch again. This is expected to be fixed in a future Git
|
||||||
version.
|
version.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
|
@ -18,7 +18,7 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Lets you rewrite git revision history by rewriting the branches mentioned
|
Lets you rewrite Git revision history by rewriting the branches mentioned
|
||||||
in the <rev-list options>, applying custom filters on each revision.
|
in the <rev-list options>, applying custom filters on each revision.
|
||||||
Those filters can modify each tree (e.g. removing a file or running
|
Those filters can modify each tree (e.g. removing a file or running
|
||||||
a perl rewrite on all files) or information about each commit.
|
a perl rewrite on all files) or information about each commit.
|
||||||
@ -29,7 +29,7 @@ The command will only rewrite the _positive_ refs mentioned in the
|
|||||||
command line (e.g. if you pass 'a..b', only 'b' will be rewritten).
|
command line (e.g. if you pass 'a..b', only 'b' will be rewritten).
|
||||||
If you specify no filters, the commits will be recommitted without any
|
If you specify no filters, the commits will be recommitted without any
|
||||||
changes, which would normally have no effect. Nevertheless, this may be
|
changes, which would normally have no effect. Nevertheless, this may be
|
||||||
useful in the future for compensating for some git bugs or such,
|
useful in the future for compensating for some Git bugs or such,
|
||||||
therefore such a usage is permitted.
|
therefore such a usage is permitted.
|
||||||
|
|
||||||
*NOTE*: This command honors `.git/info/grafts` file and refs in
|
*NOTE*: This command honors `.git/info/grafts` file and refs in
|
||||||
@ -374,7 +374,7 @@ git-filter-branch is often used to get rid of a subset of files,
|
|||||||
usually with some combination of `--index-filter` and
|
usually with some combination of `--index-filter` and
|
||||||
`--subdirectory-filter`. People expect the resulting repository to
|
`--subdirectory-filter`. People expect the resulting repository to
|
||||||
be smaller than the original, but you need a few more steps to
|
be smaller than the original, but you need a few more steps to
|
||||||
actually make it smaller, because git tries hard not to lose your
|
actually make it smaller, because Git tries hard not to lose your
|
||||||
objects until you tell it to. First make sure that:
|
objects until you tell it to. First make sure that:
|
||||||
|
|
||||||
* You really removed all variants of a filename, if a blob was moved
|
* You really removed all variants of a filename, if a blob was moved
|
||||||
|
@ -208,14 +208,14 @@ The expected use case of this is to write supporting explanation for
|
|||||||
the commit that does not belong to the commit log message proper,
|
the commit that does not belong to the commit log message proper,
|
||||||
and include it with the patch submission. While one can simply write
|
and include it with the patch submission. While one can simply write
|
||||||
these explanations after `format-patch` has run but before sending,
|
these explanations after `format-patch` has run but before sending,
|
||||||
keeping them as git notes allows them to be maintained between versions
|
keeping them as Git notes allows them to be maintained between versions
|
||||||
of the patch series (but see the discussion of the `notes.rewrite`
|
of the patch series (but see the discussion of the `notes.rewrite`
|
||||||
configuration options in linkgit:git-notes[1] to use this workflow).
|
configuration options in linkgit:git-notes[1] to use this workflow).
|
||||||
|
|
||||||
--[no]-signature=<signature>::
|
--[no]-signature=<signature>::
|
||||||
Add a signature to each message produced. Per RFC 3676 the signature
|
Add a signature to each message produced. Per RFC 3676 the signature
|
||||||
is separated from the body by a line with '-- ' on it. If the
|
is separated from the body by a line with '-- ' on it. If the
|
||||||
signature option is omitted the signature defaults to the git version
|
signature option is omitted the signature defaults to the Git version
|
||||||
number.
|
number.
|
||||||
|
|
||||||
--suffix=.<sfx>::
|
--suffix=.<sfx>::
|
||||||
@ -389,7 +389,7 @@ Thunderbird
|
|||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
By default, Thunderbird will both wrap emails as well as flag
|
By default, Thunderbird will both wrap emails as well as flag
|
||||||
them as being 'format=flowed', both of which will make the
|
them as being 'format=flowed', both of which will make the
|
||||||
resulting email unusable by git.
|
resulting email unusable by Git.
|
||||||
|
|
||||||
There are three different approaches: use an add-on to turn off line wraps,
|
There are three different approaches: use an add-on to turn off line wraps,
|
||||||
configure Thunderbird to not mangle patches, or use
|
configure Thunderbird to not mangle patches, or use
|
||||||
@ -525,8 +525,8 @@ $ git format-patch -M -B origin
|
|||||||
Additionally, it detects and handles renames and complete rewrites
|
Additionally, it detects and handles renames and complete rewrites
|
||||||
intelligently to produce a renaming patch. A renaming patch reduces
|
intelligently to produce a renaming patch. A renaming patch reduces
|
||||||
the amount of text output, and generally makes it easier to review.
|
the amount of text output, and generally makes it easier to review.
|
||||||
Note that non-git "patch" programs won't understand renaming patches, so
|
Note that non-Git "patch" programs won't understand renaming patches, so
|
||||||
use it only when you know the recipient uses git to apply your patch.
|
use it only when you know the recipient uses Git to apply your patch.
|
||||||
|
|
||||||
* Extract three topmost commits from the current branch and format them
|
* Extract three topmost commits from the current branch and format them
|
||||||
as e-mailable patches:
|
as e-mailable patches:
|
||||||
|
@ -56,7 +56,7 @@ index file, all SHA1 references in `refs` namespace, and all reflogs
|
|||||||
($GIT_DIR/objects), but also the ones found in alternate
|
($GIT_DIR/objects), but also the ones found in alternate
|
||||||
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES
|
object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES
|
||||||
or $GIT_DIR/objects/info/alternates,
|
or $GIT_DIR/objects/info/alternates,
|
||||||
and in packed git archives found in $GIT_DIR/objects/pack
|
and in packed Git archives found in $GIT_DIR/objects/pack
|
||||||
and corresponding pack subdirectories in alternate
|
and corresponding pack subdirectories in alternate
|
||||||
object pools. This is now default; you can turn it off
|
object pools. This is now default; you can turn it off
|
||||||
with --no-full.
|
with --no-full.
|
||||||
@ -64,8 +64,8 @@ index file, all SHA1 references in `refs` namespace, and all reflogs
|
|||||||
--strict::
|
--strict::
|
||||||
Enable more strict checking, namely to catch a file mode
|
Enable more strict checking, namely to catch a file mode
|
||||||
recorded with g+w bit set, which was created by older
|
recorded with g+w bit set, which was created by older
|
||||||
versions of git. Existing repositories, including the
|
versions of Git. Existing repositories, including the
|
||||||
Linux kernel, git itself, and sparse repository have old
|
Linux kernel, Git itself, and sparse repository have old
|
||||||
objects that triggers this check, but it is recommended
|
objects that triggers this check, but it is recommended
|
||||||
to check new projects with this flag.
|
to check new projects with this flag.
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ OPTIONS
|
|||||||
blobs registered in the index file.
|
blobs registered in the index file.
|
||||||
|
|
||||||
--no-index::
|
--no-index::
|
||||||
Search files in the current directory that is not managed by git.
|
Search files in the current directory that is not managed by Git.
|
||||||
|
|
||||||
--untracked::
|
--untracked::
|
||||||
In addition to searching in the tracked files in the working
|
In addition to searching in the tracked files in the working
|
||||||
|
@ -102,7 +102,7 @@ Examples
|
|||||||
SEE ALSO
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
linkgit:gitk[1]::
|
linkgit:gitk[1]::
|
||||||
The git repository browser. Shows branches, commit history
|
The Git repository browser. Shows branches, commit history
|
||||||
and file differences. gitk is the utility started by
|
and file differences. gitk is the utility started by
|
||||||
'git gui''s Repository Visualize actions.
|
'git gui''s Repository Visualize actions.
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ OPTIONS
|
|||||||
--path::
|
--path::
|
||||||
Hash object as it were located at the given path. The location of
|
Hash object as it were located at the given path. The location of
|
||||||
file does not directly influence on the hash value, but path is
|
file does not directly influence on the hash value, but path is
|
||||||
used to determine what git filters should be applied to the object
|
used to determine what Git filters should be applied to the object
|
||||||
before it can be placed to the object database, and, as result of
|
before it can be placed to the object database, and, as result of
|
||||||
applying filters, the actual blob put into the object database may
|
applying filters, the actual blob put into the object database may
|
||||||
differ from the given file. This option is mainly useful for hashing
|
differ from the given file. This option is mainly useful for hashing
|
||||||
|
@ -3,7 +3,7 @@ git-help(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-help - display help information about git
|
git-help - Display help information about Git
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -14,13 +14,13 @@ DESCRIPTION
|
|||||||
-----------
|
-----------
|
||||||
|
|
||||||
With no options and no COMMAND given, the synopsis of the 'git'
|
With no options and no COMMAND given, the synopsis of the 'git'
|
||||||
command and a list of the most commonly used git commands are printed
|
command and a list of the most commonly used Git commands are printed
|
||||||
on the standard output.
|
on the standard output.
|
||||||
|
|
||||||
If the option '--all' or '-a' is given, then all available commands are
|
If the option '--all' or '-a' is given, then all available commands are
|
||||||
printed on the standard output.
|
printed on the standard output.
|
||||||
|
|
||||||
If a git command is named, a manual page for that command is brought
|
If a Git subcommand is named, a manual page for that subcommand is brought
|
||||||
up. The 'man' program is used by default for this purpose, but this
|
up. The 'man' program is used by default for this purpose, but this
|
||||||
can be overridden by other options or configuration variables.
|
can be overridden by other options or configuration variables.
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ and the backwards-compatible dumb HTTP protocol, as well as clients
|
|||||||
pushing using the smart HTTP protocol.
|
pushing using the smart HTTP protocol.
|
||||||
|
|
||||||
It verifies that the directory has the magic file
|
It verifies that the directory has the magic file
|
||||||
"git-daemon-export-ok", and it will refuse to export any git directory
|
"git-daemon-export-ok", and it will refuse to export any Git directory
|
||||||
that hasn't explicitly been marked for export this way (unless the
|
that hasn't explicitly been marked for export this way (unless the
|
||||||
GIT_HTTP_EXPORT_ALL environmental variable is set).
|
GIT_HTTP_EXPORT_ALL environmental variable is set).
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ git-http-fetch(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-http-fetch - Download from a remote git repository via HTTP
|
git-http-fetch - Download from a remote Git repository via HTTP
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
@ -13,7 +13,7 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Downloads a remote git repository via HTTP.
|
Downloads a remote Git repository via HTTP.
|
||||||
|
|
||||||
*NOTE*: use of this command without -a is deprecated. The -a
|
*NOTE*: use of this command without -a is deprecated. The -a
|
||||||
behaviour will become the default in a future release.
|
behaviour will become the default in a future release.
|
||||||
|
@ -19,7 +19,7 @@ DESCRIPTION
|
|||||||
Reads a packed archive (.pack) from the specified file, and
|
Reads a packed archive (.pack) from the specified file, and
|
||||||
builds a pack index file (.idx) for it. The packed archive
|
builds a pack index file (.idx) for it. The packed archive
|
||||||
together with the pack index can then be placed in the
|
together with the pack index can then be placed in the
|
||||||
objects/pack/ directory of a git repository.
|
objects/pack/ directory of a Git repository.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
@ -39,7 +39,7 @@ OPTIONS
|
|||||||
When this flag is provided, the pack is read from stdin
|
When this flag is provided, the pack is read from stdin
|
||||||
instead and a copy is then written to <pack-file>. If
|
instead and a copy is then written to <pack-file>. If
|
||||||
<pack-file> is not specified, the pack is written to
|
<pack-file> is not specified, the pack is written to
|
||||||
objects/pack/ directory of the current git repository with
|
objects/pack/ directory of the current Git repository with
|
||||||
a default name determined from the pack content. If
|
a default name determined from the pack content. If
|
||||||
<pack-file> is not specified consider using --keep to
|
<pack-file> is not specified consider using --keep to
|
||||||
prevent a race condition between this process and
|
prevent a race condition between this process and
|
||||||
@ -81,7 +81,7 @@ OPTIONS
|
|||||||
This is meant to reduce packing time on multiprocessor
|
This is meant to reduce packing time on multiprocessor
|
||||||
machines. The required amount of memory for the delta search
|
machines. The required amount of memory for the delta search
|
||||||
window is however multiplied by the number of threads.
|
window is however multiplied by the number of threads.
|
||||||
Specifying 0 will cause git to auto-detect the number of CPU's
|
Specifying 0 will cause Git to auto-detect the number of CPU's
|
||||||
and use maximum 3 threads.
|
and use maximum 3 threads.
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ git-init-db(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-init-db - Creates an empty git repository
|
git-init-db - Creates an empty Git repository
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
|
@ -3,7 +3,7 @@ git-init(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-init - Create an empty git repository or reinitialize an existing one
|
git-init - Create an empty Git repository or reinitialize an existing one
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
@ -17,7 +17,7 @@ SYNOPSIS
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
This command creates an empty git repository - basically a `.git`
|
This command creates an empty Git repository - basically a `.git`
|
||||||
directory with subdirectories for `objects`, `refs/heads`,
|
directory with subdirectories for `objects`, `refs/heads`,
|
||||||
`refs/tags`, and template files. An initial `HEAD` file that
|
`refs/tags`, and template files. An initial `HEAD` file that
|
||||||
references the HEAD of the master branch is also created.
|
references the HEAD of the master branch is also created.
|
||||||
@ -58,19 +58,19 @@ DIRECTORY" section below.)
|
|||||||
--separate-git-dir=<git dir>::
|
--separate-git-dir=<git dir>::
|
||||||
|
|
||||||
Instead of initializing the repository where it is supposed to be,
|
Instead of initializing the repository where it is supposed to be,
|
||||||
place a filesytem-agnostic git symbolic link there, pointing to the
|
place a filesytem-agnostic Git symbolic link there, pointing to the
|
||||||
specified git path, and initialize a git repository at the path. The
|
specified path, and initialize a Git repository at the path. The
|
||||||
result is git repository can be separated from working tree. If this
|
result is Git repository can be separated from working tree. If this
|
||||||
is reinitialization, the repository will be moved to the specified
|
is reinitialization, the repository will be moved to the specified
|
||||||
path.
|
path.
|
||||||
|
|
||||||
--shared[=(false|true|umask|group|all|world|everybody|0xxx)]::
|
--shared[=(false|true|umask|group|all|world|everybody|0xxx)]::
|
||||||
|
|
||||||
Specify that the git repository is to be shared amongst several users. This
|
Specify that the Git repository is to be shared amongst several users. This
|
||||||
allows users belonging to the same group to push into that
|
allows users belonging to the same group to push into that
|
||||||
repository. When specified, the config variable "core.sharedRepository" is
|
repository. When specified, the config variable "core.sharedRepository" is
|
||||||
set so that files and directories under `$GIT_DIR` are created with the
|
set so that files and directories under `$GIT_DIR` are created with the
|
||||||
requested permissions. When not specified, git will use permissions reported
|
requested permissions. When not specified, Git will use permissions reported
|
||||||
by umask(2).
|
by umask(2).
|
||||||
|
|
||||||
The option can have the following values, defaulting to 'group' if no value
|
The option can have the following values, defaulting to 'group' if no value
|
||||||
@ -130,7 +130,7 @@ The suggested patterns and hook files are all modifiable and extensible.
|
|||||||
EXAMPLES
|
EXAMPLES
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Start a new git repository for an existing code base::
|
Start a new Git repository for an existing code base::
|
||||||
+
|
+
|
||||||
----------------
|
----------------
|
||||||
$ cd /path/to/my/codebase
|
$ cd /path/to/my/codebase
|
||||||
|
@ -64,7 +64,7 @@ produced by --stat etc.
|
|||||||
|
|
||||||
--log-size::
|
--log-size::
|
||||||
Before the log message print out its size in bytes. Intended
|
Before the log message print out its size in bytes. Intended
|
||||||
mainly for porcelain tools consumption. If git is unable to
|
mainly for porcelain tools consumption. If Git is unable to
|
||||||
produce a valid value size is set to zero.
|
produce a valid value size is set to zero.
|
||||||
Note that only message is considered, if also a diff is shown
|
Note that only message is considered, if also a diff is shown
|
||||||
its size is not included.
|
its size is not included.
|
||||||
|
@ -92,7 +92,7 @@ OPTIONS
|
|||||||
directory and its subdirectories in <file>.
|
directory and its subdirectories in <file>.
|
||||||
|
|
||||||
--exclude-standard::
|
--exclude-standard::
|
||||||
Add the standard git exclusions: .git/info/exclude, .gitignore
|
Add the standard Git exclusions: .git/info/exclude, .gitignore
|
||||||
in each directory, and the user's global exclusion file.
|
in each directory, and the user's global exclusion file.
|
||||||
|
|
||||||
--error-unmatch::
|
--error-unmatch::
|
||||||
|
@ -41,13 +41,13 @@ If 'git merge-index' is called with multiple <file>s (or -a) then it
|
|||||||
processes them in turn only stopping if merge returns a non-zero exit
|
processes them in turn only stopping if merge returns a non-zero exit
|
||||||
code.
|
code.
|
||||||
|
|
||||||
Typically this is run with a script calling git's imitation of
|
Typically this is run with a script calling Git's imitation of
|
||||||
the 'merge' command from the RCS package.
|
the 'merge' command from the RCS package.
|
||||||
|
|
||||||
A sample script called 'git merge-one-file' is included in the
|
A sample script called 'git merge-one-file' is included in the
|
||||||
distribution.
|
distribution.
|
||||||
|
|
||||||
ALERT ALERT ALERT! The git "merge object order" is different from the
|
ALERT ALERT ALERT! The Git "merge object order" is different from the
|
||||||
RCS 'merge' program merge object order. In the above ordering, the
|
RCS 'merge' program merge object order. In the above ordering, the
|
||||||
original is first. But the argument order to the 3-way merge program
|
original is first. But the argument order to the 3-way merge program
|
||||||
'merge' is to have the original in the middle. Don't ask me why.
|
'merge' is to have the original in the middle. Don't ask me why.
|
||||||
|
@ -178,10 +178,10 @@ of the merge. Among the changes made to the common ancestor's version,
|
|||||||
non-overlapping ones (that is, you changed an area of the file while the
|
non-overlapping ones (that is, you changed an area of the file while the
|
||||||
other side left that area intact, or vice versa) are incorporated in the
|
other side left that area intact, or vice versa) are incorporated in the
|
||||||
final result verbatim. When both sides made changes to the same area,
|
final result verbatim. When both sides made changes to the same area,
|
||||||
however, git cannot randomly pick one side over the other, and asks you to
|
however, Git cannot randomly pick one side over the other, and asks you to
|
||||||
resolve it by leaving what both sides did to that area.
|
resolve it by leaving what both sides did to that area.
|
||||||
|
|
||||||
By default, git uses the same style as the one used by the "merge" program
|
By default, Git uses the same style as the one used by the "merge" program
|
||||||
from the RCS suite to present such a conflicted hunk, like this:
|
from the RCS suite to present such a conflicted hunk, like this:
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
@ -3,7 +3,7 @@ git-mergetool{litdd}lib(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-mergetool--lib - Common git merge tool shell scriptlets
|
git-mergetool--lib - Common Git merge tool shell scriptlets
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -19,7 +19,7 @@ Porcelain-ish scripts and/or are writing new ones.
|
|||||||
|
|
||||||
The 'git-mergetool{litdd}lib' scriptlet is designed to be sourced (using
|
The 'git-mergetool{litdd}lib' scriptlet is designed to be sourced (using
|
||||||
`.`) by other shell scripts to set up functions for working
|
`.`) by other shell scripts to set up functions for working
|
||||||
with git merge tools.
|
with Git merge tools.
|
||||||
|
|
||||||
Before sourcing 'git-mergetool{litdd}lib', your script must set `TOOL_MODE`
|
Before sourcing 'git-mergetool{litdd}lib', your script must set `TOOL_MODE`
|
||||||
to define the operation mode for the functions listed below.
|
to define the operation mode for the functions listed below.
|
||||||
|
@ -28,9 +28,9 @@ A tag signature file has a very simple fixed format: four lines of
|
|||||||
tagger <tagger>
|
tagger <tagger>
|
||||||
|
|
||||||
followed by some 'optional' free-form message (some tags created
|
followed by some 'optional' free-form message (some tags created
|
||||||
by older git may not have `tagger` line). The message, when
|
by older Git may not have `tagger` line). The message, when
|
||||||
exists, is separated by a blank line from the header. The
|
exists, is separated by a blank line from the header. The
|
||||||
message part may contain a signature that git itself doesn't
|
message part may contain a signature that Git itself doesn't
|
||||||
care about, but that can be verified with gpg.
|
care about, but that can be verified with gpg.
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
|
@ -34,7 +34,7 @@ OPTIONS
|
|||||||
-k::
|
-k::
|
||||||
Skip move or rename actions which would lead to an error
|
Skip move or rename actions which would lead to an error
|
||||||
condition. An error happens when a source is neither existing nor
|
condition. An error happens when a source is neither existing nor
|
||||||
controlled by GIT, or when it would overwrite an existing
|
controlled by Git, or when it would overwrite an existing
|
||||||
file unless '-f' is given.
|
file unless '-f' is given.
|
||||||
-n::
|
-n::
|
||||||
--dry-run::
|
--dry-run::
|
||||||
|
@ -18,13 +18,13 @@ SYNOPSIS
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
This command provides a way to interact with p4 repositories
|
This command provides a way to interact with p4 repositories
|
||||||
using git.
|
using Git.
|
||||||
|
|
||||||
Create a new git repository from an existing p4 repository using
|
Create a new Git repository from an existing p4 repository using
|
||||||
'git p4 clone', giving it one or more p4 depot paths. Incorporate
|
'git p4 clone', giving it one or more p4 depot paths. Incorporate
|
||||||
new commits from p4 changes with 'git p4 sync'. The 'sync' command
|
new commits from p4 changes with 'git p4 sync'. The 'sync' command
|
||||||
is also used to include new branches from other p4 depot paths.
|
is also used to include new branches from other p4 depot paths.
|
||||||
Submit git changes back to p4 using 'git p4 submit'. The command
|
Submit Git changes back to p4 using 'git p4 submit'. The command
|
||||||
'git p4 rebase' does a sync plus rebases the current branch onto
|
'git p4 rebase' does a sync plus rebases the current branch onto
|
||||||
the updated p4 remote branch.
|
the updated p4 remote branch.
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ EXAMPLE
|
|||||||
$ git p4 clone //depot/path/project
|
$ git p4 clone //depot/path/project
|
||||||
------------
|
------------
|
||||||
|
|
||||||
* Do some work in the newly created git repository:
|
* Do some work in the newly created Git repository:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
$ cd project
|
$ cd project
|
||||||
@ -45,7 +45,7 @@ $ vi foo.h
|
|||||||
$ git commit -a -m "edited foo.h"
|
$ git commit -a -m "edited foo.h"
|
||||||
------------
|
------------
|
||||||
|
|
||||||
* Update the git repository with recent changes from p4, rebasing your
|
* Update the Git repository with recent changes from p4, rebasing your
|
||||||
work on top:
|
work on top:
|
||||||
+
|
+
|
||||||
------------
|
------------
|
||||||
@ -64,21 +64,21 @@ COMMANDS
|
|||||||
|
|
||||||
Clone
|
Clone
|
||||||
~~~~~
|
~~~~~
|
||||||
Generally, 'git p4 clone' is used to create a new git directory
|
Generally, 'git p4 clone' is used to create a new Git directory
|
||||||
from an existing p4 repository:
|
from an existing p4 repository:
|
||||||
------------
|
------------
|
||||||
$ git p4 clone //depot/path/project
|
$ git p4 clone //depot/path/project
|
||||||
------------
|
------------
|
||||||
This:
|
This:
|
||||||
|
|
||||||
1. Creates an empty git repository in a subdirectory called 'project'.
|
1. Creates an empty Git repository in a subdirectory called 'project'.
|
||||||
+
|
+
|
||||||
2. Imports the full contents of the head revision from the given p4
|
2. Imports the full contents of the head revision from the given p4
|
||||||
depot path into a single commit in the git branch 'refs/remotes/p4/master'.
|
depot path into a single commit in the Git branch 'refs/remotes/p4/master'.
|
||||||
+
|
+
|
||||||
3. Creates a local branch, 'master' from this remote and checks it out.
|
3. Creates a local branch, 'master' from this remote and checks it out.
|
||||||
|
|
||||||
To reproduce the entire p4 history in git, use the '@all' modifier on
|
To reproduce the entire p4 history in Git, use the '@all' modifier on
|
||||||
the depot path:
|
the depot path:
|
||||||
------------
|
------------
|
||||||
$ git p4 clone //depot/path/project@all
|
$ git p4 clone //depot/path/project@all
|
||||||
@ -88,13 +88,13 @@ $ git p4 clone //depot/path/project@all
|
|||||||
Sync
|
Sync
|
||||||
~~~~
|
~~~~
|
||||||
As development continues in the p4 repository, those changes can
|
As development continues in the p4 repository, those changes can
|
||||||
be included in the git repository using:
|
be included in the Git repository using:
|
||||||
------------
|
------------
|
||||||
$ git p4 sync
|
$ git p4 sync
|
||||||
------------
|
------------
|
||||||
This command finds new changes in p4 and imports them as git commits.
|
This command finds new changes in p4 and imports them as Git commits.
|
||||||
|
|
||||||
P4 repositories can be added to an existing git repository using
|
P4 repositories can be added to an existing Git repository using
|
||||||
'git p4 sync' too:
|
'git p4 sync' too:
|
||||||
------------
|
------------
|
||||||
$ mkdir repo-git
|
$ mkdir repo-git
|
||||||
@ -103,14 +103,14 @@ $ git init
|
|||||||
$ git p4 sync //path/in/your/perforce/depot
|
$ git p4 sync //path/in/your/perforce/depot
|
||||||
------------
|
------------
|
||||||
This imports the specified depot into
|
This imports the specified depot into
|
||||||
'refs/remotes/p4/master' in an existing git repository. The
|
'refs/remotes/p4/master' in an existing Git repository. The
|
||||||
'--branch' option can be used to specify a different branch to
|
'--branch' option can be used to specify a different branch to
|
||||||
be used for the p4 content.
|
be used for the p4 content.
|
||||||
|
|
||||||
If a git repository includes branches 'refs/remotes/origin/p4', these
|
If a Git repository includes branches 'refs/remotes/origin/p4', these
|
||||||
will be fetched and consulted first during a 'git p4 sync'. Since
|
will be fetched and consulted first during a 'git p4 sync'. Since
|
||||||
importing directly from p4 is considerably slower than pulling changes
|
importing directly from p4 is considerably slower than pulling changes
|
||||||
from a git remote, this can be useful in a multi-developer environment.
|
from a Git remote, this can be useful in a multi-developer environment.
|
||||||
|
|
||||||
If there are multiple branches, doing 'git p4 sync' will automatically
|
If there are multiple branches, doing 'git p4 sync' will automatically
|
||||||
use the "BRANCH DETECTION" algorithm to try to partition new changes
|
use the "BRANCH DETECTION" algorithm to try to partition new changes
|
||||||
@ -132,13 +132,13 @@ $ git p4 rebase
|
|||||||
|
|
||||||
Submit
|
Submit
|
||||||
~~~~~~
|
~~~~~~
|
||||||
Submitting changes from a git repository back to the p4 repository
|
Submitting changes from a Git repository back to the p4 repository
|
||||||
requires a separate p4 client workspace. This should be specified
|
requires a separate p4 client workspace. This should be specified
|
||||||
using the 'P4CLIENT' environment variable or the git configuration
|
using the 'P4CLIENT' environment variable or the Git configuration
|
||||||
variable 'git-p4.client'. The p4 client must exist, but the client root
|
variable 'git-p4.client'. The p4 client must exist, but the client root
|
||||||
will be created and populated if it does not already exist.
|
will be created and populated if it does not already exist.
|
||||||
|
|
||||||
To submit all changes that are in the current git branch but not in
|
To submit all changes that are in the current Git branch but not in
|
||||||
the 'p4/master' branch, use:
|
the 'p4/master' branch, use:
|
||||||
------------
|
------------
|
||||||
$ git p4 submit
|
$ git p4 submit
|
||||||
@ -154,7 +154,7 @@ be overridden using the '--origin=' command-line option.
|
|||||||
|
|
||||||
The p4 changes will be created as the user invoking 'git p4 submit'. The
|
The p4 changes will be created as the user invoking 'git p4 submit'. The
|
||||||
'--preserve-user' option will cause ownership to be modified
|
'--preserve-user' option will cause ownership to be modified
|
||||||
according to the author of the git commit. This option requires admin
|
according to the author of the Git commit. This option requires admin
|
||||||
privileges in p4, which can be granted using 'p4 protect'.
|
privileges in p4, which can be granted using 'p4 protect'.
|
||||||
|
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ subsequent 'sync' operations.
|
|||||||
branch is 'master'.
|
branch is 'master'.
|
||||||
+
|
+
|
||||||
This example imports a new remote "p4/proj2" into an existing
|
This example imports a new remote "p4/proj2" into an existing
|
||||||
git repository:
|
Git repository:
|
||||||
+
|
+
|
||||||
----
|
----
|
||||||
$ git init
|
$ git init
|
||||||
@ -206,11 +206,11 @@ git repository:
|
|||||||
|
|
||||||
--detect-labels::
|
--detect-labels::
|
||||||
Query p4 for labels associated with the depot paths, and add
|
Query p4 for labels associated with the depot paths, and add
|
||||||
them as tags in git. Limited usefulness as only imports labels
|
them as tags in Git. Limited usefulness as only imports labels
|
||||||
associated with new changelists. Deprecated.
|
associated with new changelists. Deprecated.
|
||||||
|
|
||||||
--import-labels::
|
--import-labels::
|
||||||
Import labels from p4 into git.
|
Import labels from p4 into Git.
|
||||||
|
|
||||||
--import-local::
|
--import-local::
|
||||||
By default, p4 branches are stored in 'refs/remotes/p4/',
|
By default, p4 branches are stored in 'refs/remotes/p4/',
|
||||||
@ -226,12 +226,12 @@ git repository:
|
|||||||
specifier.
|
specifier.
|
||||||
|
|
||||||
--keep-path::
|
--keep-path::
|
||||||
The mapping of file names from the p4 depot path to git, by
|
The mapping of file names from the p4 depot path to Git, by
|
||||||
default, involves removing the entire depot path. With this
|
default, involves removing the entire depot path. With this
|
||||||
option, the full p4 depot path is retained in git. For example,
|
option, the full p4 depot path is retained in Git. For example,
|
||||||
path '//depot/main/foo/bar.c', when imported from
|
path '//depot/main/foo/bar.c', when imported from
|
||||||
'//depot/main/', becomes 'foo/bar.c'. With '--keep-path', the
|
'//depot/main/', becomes 'foo/bar.c'. With '--keep-path', the
|
||||||
git path is instead 'depot/main/foo/bar.c'.
|
Git path is instead 'depot/main/foo/bar.c'.
|
||||||
|
|
||||||
--use-client-spec::
|
--use-client-spec::
|
||||||
Use a client spec to find the list of interesting files in p4.
|
Use a client spec to find the list of interesting files in p4.
|
||||||
@ -243,7 +243,7 @@ These options can be used in an initial 'clone', along with the 'sync'
|
|||||||
options described above.
|
options described above.
|
||||||
|
|
||||||
--destination <directory>::
|
--destination <directory>::
|
||||||
Where to create the git repository. If not provided, the last
|
Where to create the Git repository. If not provided, the last
|
||||||
component in the p4 depot path is used to create a new
|
component in the p4 depot path is used to create a new
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
@ -273,12 +273,12 @@ These options can be used to modify 'git p4 submit' behavior.
|
|||||||
requires p4 admin privileges.
|
requires p4 admin privileges.
|
||||||
|
|
||||||
--export-labels::
|
--export-labels::
|
||||||
Export tags from git as p4 labels. Tags found in git are applied
|
Export tags from Git as p4 labels. Tags found in Git are applied
|
||||||
to the perforce working directory.
|
to the perforce working directory.
|
||||||
|
|
||||||
--dry-run, -n::
|
--dry-run, -n::
|
||||||
Show just what commits would be submitted to p4; do not change
|
Show just what commits would be submitted to p4; do not change
|
||||||
state in git or p4.
|
state in Git or p4.
|
||||||
|
|
||||||
--prepare-p4-only::
|
--prepare-p4-only::
|
||||||
Apply a commit to the p4 workspace, opening, adding and deleting
|
Apply a commit to the p4 workspace, opening, adding and deleting
|
||||||
@ -324,12 +324,12 @@ p4 revision specifier on the end:
|
|||||||
"//depot/proj1@all //depot/proj2@all"::
|
"//depot/proj1@all //depot/proj2@all"::
|
||||||
Import all changes from both named depot paths into a single
|
Import all changes from both named depot paths into a single
|
||||||
repository. Only files below these directories are included.
|
repository. Only files below these directories are included.
|
||||||
There is not a subdirectory in git for each "proj1" and "proj2".
|
There is not a subdirectory in Git for each "proj1" and "proj2".
|
||||||
You must use the '--destination' option when specifying more
|
You must use the '--destination' option when specifying more
|
||||||
than one depot path. The revision specifier must be specified
|
than one depot path. The revision specifier must be specified
|
||||||
identically on each depot path. If there are files in the
|
identically on each depot path. If there are files in the
|
||||||
depot paths with the same name, the path with the most recently
|
depot paths with the same name, the path with the most recently
|
||||||
updated version of the file is the one that appears in git.
|
updated version of the file is the one that appears in Git.
|
||||||
|
|
||||||
See 'p4 help revisions' for the full syntax of p4 revision specifiers.
|
See 'p4 help revisions' for the full syntax of p4 revision specifiers.
|
||||||
|
|
||||||
@ -346,11 +346,11 @@ configuration file. This allows future 'git p4 submit' commands to
|
|||||||
work properly; the submit command looks only at the variable and does
|
work properly; the submit command looks only at the variable and does
|
||||||
not have a command-line option.
|
not have a command-line option.
|
||||||
|
|
||||||
The full syntax for a p4 view is documented in 'p4 help views'. 'Git p4'
|
The full syntax for a p4 view is documented in 'p4 help views'. 'git p4'
|
||||||
knows only a subset of the view syntax. It understands multi-line
|
knows only a subset of the view syntax. It understands multi-line
|
||||||
mappings, overlays with '+', exclusions with '-' and double-quotes
|
mappings, overlays with '+', exclusions with '-' and double-quotes
|
||||||
around whitespace. Of the possible wildcards, 'git p4' only handles
|
around whitespace. Of the possible wildcards, 'git p4' only handles
|
||||||
'...', and only when it is at the end of the path. 'Git p4' will complain
|
'...', and only when it is at the end of the path. 'git p4' will complain
|
||||||
if it encounters an unhandled wildcard.
|
if it encounters an unhandled wildcard.
|
||||||
|
|
||||||
Bugs in the implementation of overlap mappings exist. If multiple depot
|
Bugs in the implementation of overlap mappings exist. If multiple depot
|
||||||
@ -366,7 +366,7 @@ variable P4CLIENT, a file referenced by P4CONFIG, or the local host name.
|
|||||||
|
|
||||||
BRANCH DETECTION
|
BRANCH DETECTION
|
||||||
----------------
|
----------------
|
||||||
P4 does not have the same concept of a branch as git. Instead,
|
P4 does not have the same concept of a branch as Git. Instead,
|
||||||
p4 organizes its content as a directory tree, where by convention
|
p4 organizes its content as a directory tree, where by convention
|
||||||
different logical branches are in different locations in the tree.
|
different logical branches are in different locations in the tree.
|
||||||
The 'p4 branch' command is used to maintain mappings between
|
The 'p4 branch' command is used to maintain mappings between
|
||||||
@ -376,7 +376,7 @@ can use these mappings to determine branch relationships.
|
|||||||
If you have a repository where all the branches of interest exist as
|
If you have a repository where all the branches of interest exist as
|
||||||
subdirectories of a single depot path, you can use '--detect-branches'
|
subdirectories of a single depot path, you can use '--detect-branches'
|
||||||
when cloning or syncing to have 'git p4' automatically find
|
when cloning or syncing to have 'git p4' automatically find
|
||||||
subdirectories in p4, and to generate these as branches in git.
|
subdirectories in p4, and to generate these as branches in Git.
|
||||||
|
|
||||||
For example, if the P4 repository structure is:
|
For example, if the P4 repository structure is:
|
||||||
----
|
----
|
||||||
@ -398,7 +398,7 @@ called 'master', and one for //depot/branch1 called 'depot/branch1'.
|
|||||||
|
|
||||||
However, it is not necessary to create branches in p4 to be able to use
|
However, it is not necessary to create branches in p4 to be able to use
|
||||||
them like branches. Because it is difficult to infer branch
|
them like branches. Because it is difficult to infer branch
|
||||||
relationships automatically, a git configuration setting
|
relationships automatically, a Git configuration setting
|
||||||
'git-p4.branchList' can be used to explicitly identify branch
|
'git-p4.branchList' can be used to explicitly identify branch
|
||||||
relationships. It is a list of "source:destination" pairs, like a
|
relationships. It is a list of "source:destination" pairs, like a
|
||||||
simple p4 branch specification, where the "source" and "destination" are
|
simple p4 branch specification, where the "source" and "destination" are
|
||||||
@ -416,7 +416,7 @@ git p4 clone --detect-branches //depot@all .
|
|||||||
PERFORMANCE
|
PERFORMANCE
|
||||||
-----------
|
-----------
|
||||||
The fast-import mechanism used by 'git p4' creates one pack file for
|
The fast-import mechanism used by 'git p4' creates one pack file for
|
||||||
each invocation of 'git p4 sync'. Normally, git garbage compression
|
each invocation of 'git p4 sync'. Normally, Git garbage compression
|
||||||
(linkgit:git-gc[1]) automatically compresses these to fewer pack files,
|
(linkgit:git-gc[1]) automatically compresses these to fewer pack files,
|
||||||
but explicit invocation of 'git repack -adf' may improve performance.
|
but explicit invocation of 'git repack -adf' may improve performance.
|
||||||
|
|
||||||
@ -454,9 +454,9 @@ git-p4.client::
|
|||||||
Clone and sync variables
|
Clone and sync variables
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
git-p4.syncFromOrigin::
|
git-p4.syncFromOrigin::
|
||||||
Because importing commits from other git repositories is much faster
|
Because importing commits from other Git repositories is much faster
|
||||||
than importing them from p4, a mechanism exists to find p4 changes
|
than importing them from p4, a mechanism exists to find p4 changes
|
||||||
first in git remotes. If branches exist under 'refs/remote/origin/p4',
|
first in Git remotes. If branches exist under 'refs/remote/origin/p4',
|
||||||
those will be fetched and used when syncing from p4. This
|
those will be fetched and used when syncing from p4. This
|
||||||
variable can be set to 'false' to disable this behavior.
|
variable can be set to 'false' to disable this behavior.
|
||||||
|
|
||||||
@ -508,7 +508,7 @@ git-p4.detectCopiesHarder::
|
|||||||
Detect copies harder. See linkgit:git-diff[1]. A boolean.
|
Detect copies harder. See linkgit:git-diff[1]. A boolean.
|
||||||
|
|
||||||
git-p4.preserveUser::
|
git-p4.preserveUser::
|
||||||
On submit, re-author changes to reflect the git author,
|
On submit, re-author changes to reflect the Git author,
|
||||||
regardless of who invokes 'git p4 submit'.
|
regardless of who invokes 'git p4 submit'.
|
||||||
|
|
||||||
git-p4.allowMissingP4Users::
|
git-p4.allowMissingP4Users::
|
||||||
@ -545,7 +545,7 @@ git-p4.attemptRCSCleanup::
|
|||||||
present.
|
present.
|
||||||
|
|
||||||
git-p4.exportLabels::
|
git-p4.exportLabels::
|
||||||
Export git tags to p4 labels, as per --export-labels.
|
Export Git tags to p4 labels, as per --export-labels.
|
||||||
|
|
||||||
git-p4.labelExportRegexp::
|
git-p4.labelExportRegexp::
|
||||||
Only p4 labels matching this regular expression will be exported. The
|
Only p4 labels matching this regular expression will be exported. The
|
||||||
@ -557,11 +557,11 @@ git-p4.conflict::
|
|||||||
|
|
||||||
IMPLEMENTATION DETAILS
|
IMPLEMENTATION DETAILS
|
||||||
----------------------
|
----------------------
|
||||||
* Changesets from p4 are imported using git fast-import.
|
* Changesets from p4 are imported using Git fast-import.
|
||||||
* Cloning or syncing does not require a p4 client; file contents are
|
* Cloning or syncing does not require a p4 client; file contents are
|
||||||
collected using 'p4 print'.
|
collected using 'p4 print'.
|
||||||
* Submitting requires a p4 client, which is not in the same location
|
* Submitting requires a p4 client, which is not in the same location
|
||||||
as the git repository. Patches are applied, one at a time, to
|
as the Git repository. Patches are applied, one at a time, to
|
||||||
this p4 client and submitted from there.
|
this p4 client and submitted from there.
|
||||||
* Each commit imported by 'git p4' has a line at the end of the log
|
* Each commit imported by 'git p4' has a line at the end of the log
|
||||||
message indicating the p4 depot location and change number. This
|
message indicating the p4 depot location and change number. This
|
||||||
|
@ -35,7 +35,7 @@ A pack index file (.idx) is generated for fast, random access to the
|
|||||||
objects in the pack. Placing both the index file (.idx) and the packed
|
objects in the pack. Placing both the index file (.idx) and the packed
|
||||||
archive (.pack) in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or
|
archive (.pack) in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or
|
||||||
any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES)
|
any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES)
|
||||||
enables git to read from the pack archive.
|
enables Git to read from the pack archive.
|
||||||
|
|
||||||
The 'git unpack-objects' command can read the packed archive and
|
The 'git unpack-objects' command can read the packed archive and
|
||||||
expand the objects contained in the pack into "one-file
|
expand the objects contained in the pack into "one-file
|
||||||
@ -80,7 +80,7 @@ base-name::
|
|||||||
--include-tag::
|
--include-tag::
|
||||||
Include unasked-for annotated tags if the object they
|
Include unasked-for annotated tags if the object they
|
||||||
reference was included in the resulting packfile. This
|
reference was included in the resulting packfile. This
|
||||||
can be useful to send new tags to native git clients.
|
can be useful to send new tags to native Git clients.
|
||||||
|
|
||||||
--window=<n>::
|
--window=<n>::
|
||||||
--depth=<n>::
|
--depth=<n>::
|
||||||
@ -185,14 +185,14 @@ base-name::
|
|||||||
option only makes sense in conjunction with --stdout.
|
option only makes sense in conjunction with --stdout.
|
||||||
+
|
+
|
||||||
Note: A thin pack violates the packed archive format by omitting
|
Note: A thin pack violates the packed archive format by omitting
|
||||||
required objects and is thus unusable by git without making it
|
required objects and is thus unusable by Git without making it
|
||||||
self-contained. Use `git index-pack --fix-thin`
|
self-contained. Use `git index-pack --fix-thin`
|
||||||
(see linkgit:git-index-pack[1]) to restore the self-contained property.
|
(see linkgit:git-index-pack[1]) to restore the self-contained property.
|
||||||
|
|
||||||
--delta-base-offset::
|
--delta-base-offset::
|
||||||
A packed archive can express the base object of a delta as
|
A packed archive can express the base object of a delta as
|
||||||
either a 20-byte object name or as an offset in the
|
either a 20-byte object name or as an offset in the
|
||||||
stream, but ancient versions of git don't understand the
|
stream, but ancient versions of Git don't understand the
|
||||||
latter. By default, 'git pack-objects' only uses the
|
latter. By default, 'git pack-objects' only uses the
|
||||||
former format for better compatibility. This option
|
former format for better compatibility. This option
|
||||||
allows the command to use the latter format for
|
allows the command to use the latter format for
|
||||||
@ -202,7 +202,7 @@ self-contained. Use `git index-pack --fix-thin`
|
|||||||
+
|
+
|
||||||
Note: Porcelain commands such as `git gc` (see linkgit:git-gc[1]),
|
Note: Porcelain commands such as `git gc` (see linkgit:git-gc[1]),
|
||||||
`git repack` (see linkgit:git-repack[1]) pass this option by default
|
`git repack` (see linkgit:git-repack[1]) pass this option by default
|
||||||
in modern git when they put objects in your repository into pack files.
|
in modern Git when they put objects in your repository into pack files.
|
||||||
So does `git bundle` (see linkgit:git-bundle[1]) when it creates a bundle.
|
So does `git bundle` (see linkgit:git-bundle[1]) when it creates a bundle.
|
||||||
|
|
||||||
--threads=<n>::
|
--threads=<n>::
|
||||||
@ -212,7 +212,7 @@ So does `git bundle` (see linkgit:git-bundle[1]) when it creates a bundle.
|
|||||||
This is meant to reduce packing time on multiprocessor machines.
|
This is meant to reduce packing time on multiprocessor machines.
|
||||||
The required amount of memory for the delta search window is
|
The required amount of memory for the delta search window is
|
||||||
however multiplied by the number of threads.
|
however multiplied by the number of threads.
|
||||||
Specifying 0 will cause git to auto-detect the number of CPU's
|
Specifying 0 will cause Git to auto-detect the number of CPU's
|
||||||
and set the number of threads accordingly.
|
and set the number of threads accordingly.
|
||||||
|
|
||||||
--index-version=<version>[,<offset>]::
|
--index-version=<version>[,<offset>]::
|
||||||
|
@ -59,8 +59,8 @@ and a log message from the user describing the changes.
|
|||||||
See linkgit:git-merge[1] for details, including how conflicts
|
See linkgit:git-merge[1] for details, including how conflicts
|
||||||
are presented and handled.
|
are presented and handled.
|
||||||
|
|
||||||
In git 1.7.0 or later, to cancel a conflicting merge, use
|
In Git 1.7.0 or later, to cancel a conflicting merge, use
|
||||||
`git reset --merge`. *Warning*: In older versions of git, running 'git pull'
|
`git reset --merge`. *Warning*: In older versions of Git, running 'git pull'
|
||||||
with uncommitted changes is discouraged: while possible, it leaves you
|
with uncommitted changes is discouraged: while possible, it leaves you
|
||||||
in a state that may be hard to back out of in the case of a conflict.
|
in a state that may be hard to back out of in the case of a conflict.
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ must be given before the options meant for 'git fetch'.
|
|||||||
This option controls if new commits of all populated submodules should
|
This option controls if new commits of all populated submodules should
|
||||||
be fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).
|
be fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).
|
||||||
That might be necessary to get the data needed for merging submodule
|
That might be necessary to get the data needed for merging submodule
|
||||||
commits, a feature git learned in 1.7.3. Notice that the result of a
|
commits, a feature Git learned in 1.7.3. Notice that the result of a
|
||||||
merge will not be checked out in the submodule, "git submodule update"
|
merge will not be checked out in the submodule, "git submodule update"
|
||||||
has to be called afterwards to bring the work tree up to date with the
|
has to be called afterwards to bring the work tree up to date with the
|
||||||
merge result.
|
merge result.
|
||||||
@ -228,7 +228,7 @@ Using --recurse-submodules can only fetch new commits in already checked
|
|||||||
out submodules right now. When e.g. upstream added a new submodule in the
|
out submodules right now. When e.g. upstream added a new submodule in the
|
||||||
just fetched commits of the superproject the submodule itself can not be
|
just fetched commits of the superproject the submodule itself can not be
|
||||||
fetched, making it impossible to check out that submodule later without
|
fetched, making it impossible to check out that submodule later without
|
||||||
having to do a fetch again. This is expected to be fixed in a future git
|
having to do a fetch again. This is expected to be fixed in a future Git
|
||||||
version.
|
version.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
|
@ -53,7 +53,7 @@ updated.
|
|||||||
The object referenced by <src> is used to update the <dst> reference
|
The object referenced by <src> is used to update the <dst> reference
|
||||||
on the remote side. By default this is only allowed if <dst> is not
|
on the remote side. By default this is only allowed if <dst> is not
|
||||||
a tag (annotated or lightweight), and then only if it can fast-forward
|
a tag (annotated or lightweight), and then only if it can fast-forward
|
||||||
<dst>. By having the optional leading `+`, you can tell git to update
|
<dst>. By having the optional leading `+`, you can tell Git to update
|
||||||
the <dst> ref even if it is not allowed by default (e.g., it is not a
|
the <dst> ref even if it is not allowed by default (e.g., it is not a
|
||||||
fast-forward.) This does *not* attempt to merge <src> into <dst>. See
|
fast-forward.) This does *not* attempt to merge <src> into <dst>. See
|
||||||
EXAMPLES below for details.
|
EXAMPLES below for details.
|
||||||
@ -64,7 +64,7 @@ Pushing an empty <src> allows you to delete the <dst> ref from
|
|||||||
the remote repository.
|
the remote repository.
|
||||||
+
|
+
|
||||||
The special refspec `:` (or `+:` to allow non-fast-forward updates)
|
The special refspec `:` (or `+:` to allow non-fast-forward updates)
|
||||||
directs git to push "matching" branches: for every branch that exists on
|
directs Git to push "matching" branches: for every branch that exists on
|
||||||
the local side, the remote side is updated if a branch of the same name
|
the local side, the remote side is updated if a branch of the same name
|
||||||
already exists on the remote side. This is the default operation mode
|
already exists on the remote side. This is the default operation mode
|
||||||
if no explicit refspec is found (that is neither on the command line
|
if no explicit refspec is found (that is neither on the command line
|
||||||
@ -177,7 +177,7 @@ useful if you write an alias or script around 'git push'.
|
|||||||
--recurse-submodules=check|on-demand::
|
--recurse-submodules=check|on-demand::
|
||||||
Make sure all submodule commits used by the revisions to be
|
Make sure all submodule commits used by the revisions to be
|
||||||
pushed are available on a remote-tracking branch. If 'check' is
|
pushed are available on a remote-tracking branch. If 'check' is
|
||||||
used git will verify that all submodule commits that changed in
|
used Git will verify that all submodule commits that changed in
|
||||||
the revisions to be pushed are available on at least one remote
|
the revisions to be pushed are available on at least one remote
|
||||||
of the submodule. If any commits are missing the push will be
|
of the submodule. If any commits are missing the push will be
|
||||||
aborted and exit with non-zero status. If 'on-demand' is used
|
aborted and exit with non-zero status. If 'on-demand' is used
|
||||||
@ -192,7 +192,7 @@ OUTPUT
|
|||||||
------
|
------
|
||||||
|
|
||||||
The output of "git push" depends on the transport method used; this
|
The output of "git push" depends on the transport method used; this
|
||||||
section describes the output when pushing over the git protocol (either
|
section describes the output when pushing over the Git protocol (either
|
||||||
locally or via ssh).
|
locally or via ssh).
|
||||||
|
|
||||||
The status of the push is output in tabular form, with each line
|
The status of the push is output in tabular form, with each line
|
||||||
|
@ -14,7 +14,7 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Applies a quilt patchset onto the current git branch, preserving
|
Applies a quilt patchset onto the current Git branch, preserving
|
||||||
the patch boundaries, patch order, and patch descriptions present
|
the patch boundaries, patch order, and patch descriptions present
|
||||||
in the quilt patchset.
|
in the quilt patchset.
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ the patch description is displayed and the user is asked to
|
|||||||
interactively enter the author of the patch.
|
interactively enter the author of the patch.
|
||||||
|
|
||||||
If a subject is not found in the patch description the patch name is
|
If a subject is not found in the patch description the patch name is
|
||||||
preserved as the 1 line subject in the git description.
|
preserved as the 1 line subject in the Git description.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
|
@ -179,7 +179,7 @@ parameter can be any valid commit-ish.
|
|||||||
In case of conflict, 'git rebase' will stop at the first problematic commit
|
In case of conflict, 'git rebase' will stop at the first problematic commit
|
||||||
and leave conflict markers in the tree. You can use 'git diff' to locate
|
and leave conflict markers in the tree. You can use 'git diff' to locate
|
||||||
the markers (<<<<<<) and make edits to resolve the conflict. For each
|
the markers (<<<<<<) and make edits to resolve the conflict. For each
|
||||||
file you edit, you need to tell git that the conflict has been resolved,
|
file you edit, you need to tell Git that the conflict has been resolved,
|
||||||
typically this would be done with
|
typically this would be done with
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ The reflog will cover all recent actions (HEAD reflog records branch switching
|
|||||||
as well). It is an alias for `git log -g --abbrev-commit --pretty=oneline`;
|
as well). It is an alias for `git log -g --abbrev-commit --pretty=oneline`;
|
||||||
see linkgit:git-log[1].
|
see linkgit:git-log[1].
|
||||||
|
|
||||||
The reflog is useful in various git commands, to specify the old value
|
The reflog is useful in various Git commands, to specify the old value
|
||||||
of a reference. For example, `HEAD@{2}` means "where HEAD used to be
|
of a reference. For example, `HEAD@{2}` means "where HEAD used to be
|
||||||
two moves ago", `master@{one.week.ago}` means "where master used to
|
two moves ago", `master@{one.week.ago}` means "where master used to
|
||||||
point to one week ago", and so on. See linkgit:gitrevisions[7] for
|
point to one week ago", and so on. See linkgit:gitrevisions[7] for
|
||||||
|
@ -13,7 +13,7 @@ git remote add <nick> "ext::<command>[ <arguments>...]"
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
This remote helper uses the specified '<command>' to connect
|
This remote helper uses the specified '<command>' to connect
|
||||||
to a remote git server.
|
to a remote Git server.
|
||||||
|
|
||||||
Data written to stdin of the specified '<command>' is assumed
|
Data written to stdin of the specified '<command>' is assumed
|
||||||
to be sent to a git:// server, git-upload-pack, git-receive-pack
|
to be sent to a git:// server, git-upload-pack, git-receive-pack
|
||||||
@ -33,12 +33,12 @@ The following sequences have a special meaning:
|
|||||||
|
|
||||||
'%s'::
|
'%s'::
|
||||||
Replaced with name (receive-pack, upload-pack, or
|
Replaced with name (receive-pack, upload-pack, or
|
||||||
upload-archive) of the service git wants to invoke.
|
upload-archive) of the service Git wants to invoke.
|
||||||
|
|
||||||
'%S'::
|
'%S'::
|
||||||
Replaced with long name (git-receive-pack,
|
Replaced with long name (git-receive-pack,
|
||||||
git-upload-pack, or git-upload-archive) of the service
|
git-upload-pack, or git-upload-archive) of the service
|
||||||
git wants to invoke.
|
Git wants to invoke.
|
||||||
|
|
||||||
'%G' (must be the first characters in an argument)::
|
'%G' (must be the first characters in an argument)::
|
||||||
This argument will not be passed to '<command>'. Instead, it
|
This argument will not be passed to '<command>'. Instead, it
|
||||||
@ -75,7 +75,7 @@ GIT_EXT_SERVICE_NOPREFIX::
|
|||||||
|
|
||||||
EXAMPLES:
|
EXAMPLES:
|
||||||
---------
|
---------
|
||||||
This remote helper is transparently used by git when
|
This remote helper is transparently used by Git when
|
||||||
you use commands such as "git fetch <URL>", "git clone <URL>",
|
you use commands such as "git fetch <URL>", "git clone <URL>",
|
||||||
, "git push <URL>" or "git remote add <nick> <URL>", where <URL>
|
, "git push <URL>" or "git remote add <nick> <URL>", where <URL>
|
||||||
begins with `ext::`. Examples:
|
begins with `ext::`. Examples:
|
||||||
@ -100,14 +100,14 @@ begins with `ext::`. Examples:
|
|||||||
Represents a repository with path /repo accessed using the
|
Represents a repository with path /repo accessed using the
|
||||||
helper program "git-server-alias foo". The hostname for the
|
helper program "git-server-alias foo". The hostname for the
|
||||||
remote server passed in the protocol stream will be "foo"
|
remote server passed in the protocol stream will be "foo"
|
||||||
(this allows multiple virtual git servers to share a
|
(this allows multiple virtual Git servers to share a
|
||||||
link-level address).
|
link-level address).
|
||||||
|
|
||||||
"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"::
|
"ext::git-server-alias foo %G/repo% with% spaces %Vfoo"::
|
||||||
Represents a repository with path '/repo with spaces' accessed
|
Represents a repository with path '/repo with spaces' accessed
|
||||||
using the helper program "git-server-alias foo". The hostname for
|
using the helper program "git-server-alias foo". The hostname for
|
||||||
the remote server passed in the protocol stream will be "foo"
|
the remote server passed in the protocol stream will be "foo"
|
||||||
(this allows multiple virtual git servers to share a
|
(this allows multiple virtual Git servers to share a
|
||||||
link-level address).
|
link-level address).
|
||||||
|
|
||||||
"ext::git-ssl foo.example /bar"::
|
"ext::git-ssl foo.example /bar"::
|
||||||
@ -118,7 +118,7 @@ begins with `ext::`. Examples:
|
|||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
--------------
|
--------------
|
||||||
Documentation by Ilari Liusvaara, Jonathan Nieder and the git list
|
Documentation by Ilari Liusvaara, Jonathan Nieder and the Git list
|
||||||
<git@vger.kernel.org>
|
<git@vger.kernel.org>
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
|
@ -11,14 +11,14 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
This helper uses specified file descriptors to connect to a remote git server.
|
This helper uses specified file descriptors to connect to a remote Git server.
|
||||||
This is not meant for end users but for programs and scripts calling git
|
This is not meant for end users but for programs and scripts calling git
|
||||||
fetch, push or archive.
|
fetch, push or archive.
|
||||||
|
|
||||||
If only <infd> is given, it is assumed to be a bidirectional socket connected
|
If only <infd> is given, it is assumed to be a bidirectional socket connected
|
||||||
to remote git server (git-upload-pack, git-receive-pack or
|
to remote Git server (git-upload-pack, git-receive-pack or
|
||||||
git-upload-achive). If both <infd> and <outfd> are given, they are assumed
|
git-upload-achive). If both <infd> and <outfd> are given, they are assumed
|
||||||
to be pipes connected to a remote git server (<infd> being the inbound pipe
|
to be pipes connected to a remote Git server (<infd> being the inbound pipe
|
||||||
and <outfd> being the outbound pipe.
|
and <outfd> being the outbound pipe.
|
||||||
|
|
||||||
It is assumed that any handshaking procedures have already been completed
|
It is assumed that any handshaking procedures have already been completed
|
||||||
@ -52,7 +52,7 @@ EXAMPLES
|
|||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
--------------
|
--------------
|
||||||
Documentation by Ilari Liusvaara and the git list <git@vger.kernel.org>
|
Documentation by Ilari Liusvaara and the Git list <git@vger.kernel.org>
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
---
|
---
|
||||||
|
@ -14,17 +14,17 @@ DESCRIPTION
|
|||||||
-----------
|
-----------
|
||||||
|
|
||||||
Remote helper programs are normally not used directly by end users,
|
Remote helper programs are normally not used directly by end users,
|
||||||
but they are invoked by git when it needs to interact with remote
|
but they are invoked by Git when it needs to interact with remote
|
||||||
repositories git does not support natively. A given helper will
|
repositories Git does not support natively. A given helper will
|
||||||
implement a subset of the capabilities documented here. When git
|
implement a subset of the capabilities documented here. When Git
|
||||||
needs to interact with a repository using a remote helper, it spawns
|
needs to interact with a repository using a remote helper, it spawns
|
||||||
the helper as an independent process, sends commands to the helper's
|
the helper as an independent process, sends commands to the helper's
|
||||||
standard input, and expects results from the helper's standard
|
standard input, and expects results from the helper's standard
|
||||||
output. Because a remote helper runs as an independent process from
|
output. Because a remote helper runs as an independent process from
|
||||||
git, there is no need to re-link git to add a new helper, nor any
|
Git, there is no need to re-link Git to add a new helper, nor any
|
||||||
need to link the helper with the implementation of git.
|
need to link the helper with the implementation of Git.
|
||||||
|
|
||||||
Every helper must support the "capabilities" command, which git
|
Every helper must support the "capabilities" command, which Git
|
||||||
uses to determine what other commands the helper will accept. Those
|
uses to determine what other commands the helper will accept. Those
|
||||||
other commands can be used to discover and update remote refs,
|
other commands can be used to discover and update remote refs,
|
||||||
transport objects between the object database and the remote repository,
|
transport objects between the object database and the remote repository,
|
||||||
@ -39,15 +39,15 @@ INVOCATION
|
|||||||
----------
|
----------
|
||||||
|
|
||||||
Remote helper programs are invoked with one or (optionally) two
|
Remote helper programs are invoked with one or (optionally) two
|
||||||
arguments. The first argument specifies a remote repository as in git;
|
arguments. The first argument specifies a remote repository as in Git;
|
||||||
it is either the name of a configured remote or a URL. The second
|
it is either the name of a configured remote or a URL. The second
|
||||||
argument specifies a URL; it is usually of the form
|
argument specifies a URL; it is usually of the form
|
||||||
'<transport>://<address>', but any arbitrary string is possible.
|
'<transport>://<address>', but any arbitrary string is possible.
|
||||||
The 'GIT_DIR' environment variable is set up for the remote helper
|
The 'GIT_DIR' environment variable is set up for the remote helper
|
||||||
and can be used to determine where to store additional data or from
|
and can be used to determine where to store additional data or from
|
||||||
which directory to invoke auxiliary git commands.
|
which directory to invoke auxiliary Git commands.
|
||||||
|
|
||||||
When git encounters a URL of the form '<transport>://<address>', where
|
When Git encounters a URL of the form '<transport>://<address>', where
|
||||||
'<transport>' is a protocol that it cannot handle natively, it
|
'<transport>' is a protocol that it cannot handle natively, it
|
||||||
automatically invokes 'git remote-<transport>' with the full URL as
|
automatically invokes 'git remote-<transport>' with the full URL as
|
||||||
the second argument. If such a URL is encountered directly on the
|
the second argument. If such a URL is encountered directly on the
|
||||||
@ -55,14 +55,14 @@ command line, the first argument is the same as the second, and if it
|
|||||||
is encountered in a configured remote, the first argument is the name
|
is encountered in a configured remote, the first argument is the name
|
||||||
of that remote.
|
of that remote.
|
||||||
|
|
||||||
A URL of the form '<transport>::<address>' explicitly instructs git to
|
A URL of the form '<transport>::<address>' explicitly instructs Git to
|
||||||
invoke 'git remote-<transport>' with '<address>' as the second
|
invoke 'git remote-<transport>' with '<address>' as the second
|
||||||
argument. If such a URL is encountered directly on the command line,
|
argument. If such a URL is encountered directly on the command line,
|
||||||
the first argument is '<address>', and if it is encountered in a
|
the first argument is '<address>', and if it is encountered in a
|
||||||
configured remote, the first argument is the name of that remote.
|
configured remote, the first argument is the name of that remote.
|
||||||
|
|
||||||
Additionally, when a configured remote has 'remote.<name>.vcs' set to
|
Additionally, when a configured remote has 'remote.<name>.vcs' set to
|
||||||
'<transport>', git explicitly invokes 'git remote-<transport>' with
|
'<transport>', Git explicitly invokes 'git remote-<transport>' with
|
||||||
'<name>' as the first argument. If set, the second argument is
|
'<name>' as the first argument. If set, the second argument is
|
||||||
'remote.<name>.url'; otherwise, the second argument is omitted.
|
'remote.<name>.url'; otherwise, the second argument is omitted.
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ Capabilities
|
|||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
Each remote helper is expected to support only a subset of commands.
|
Each remote helper is expected to support only a subset of commands.
|
||||||
The operations a helper supports are declared to git in the response
|
The operations a helper supports are declared to Git in the response
|
||||||
to the `capabilities` command (see COMMANDS, below).
|
to the `capabilities` command (see COMMANDS, below).
|
||||||
|
|
||||||
In the following, we list all defined capabilities and for
|
In the following, we list all defined capabilities and for
|
||||||
@ -114,10 +114,10 @@ Supported commands: 'list for-push', 'push'.
|
|||||||
+
|
+
|
||||||
Supported commands: 'list for-push', 'export'.
|
Supported commands: 'list for-push', 'export'.
|
||||||
|
|
||||||
If a helper advertises 'connect', git will use it if possible and
|
If a helper advertises 'connect', Git will use it if possible and
|
||||||
fall back to another capability if the helper requests so when
|
fall back to another capability if the helper requests so when
|
||||||
connecting (see the 'connect' command under COMMANDS).
|
connecting (see the 'connect' command under COMMANDS).
|
||||||
When choosing between 'push' and 'export', git prefers 'push'.
|
When choosing between 'push' and 'export', Git prefers 'push'.
|
||||||
Other frontends may have some other order of preference.
|
Other frontends may have some other order of preference.
|
||||||
|
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ Capabilities for Fetching
|
|||||||
'connect'::
|
'connect'::
|
||||||
Can try to connect to 'git upload-pack' (for fetching),
|
Can try to connect to 'git upload-pack' (for fetching),
|
||||||
'git receive-pack', etc for communication using the
|
'git receive-pack', etc for communication using the
|
||||||
git's native packfile protocol. This
|
Git's native packfile protocol. This
|
||||||
requires a bidirectional, full-duplex connection.
|
requires a bidirectional, full-duplex connection.
|
||||||
+
|
+
|
||||||
Supported commands: 'connect'.
|
Supported commands: 'connect'.
|
||||||
@ -143,10 +143,10 @@ Supported commands: 'list', 'fetch'.
|
|||||||
+
|
+
|
||||||
Supported commands: 'list', 'import'.
|
Supported commands: 'list', 'import'.
|
||||||
|
|
||||||
If a helper advertises 'connect', git will use it if possible and
|
If a helper advertises 'connect', Git will use it if possible and
|
||||||
fall back to another capability if the helper requests so when
|
fall back to another capability if the helper requests so when
|
||||||
connecting (see the 'connect' command under COMMANDS).
|
connecting (see the 'connect' command under COMMANDS).
|
||||||
When choosing between 'fetch' and 'import', git prefers 'fetch'.
|
When choosing between 'fetch' and 'import', Git prefers 'fetch'.
|
||||||
Other frontends may have some other order of preference.
|
Other frontends may have some other order of preference.
|
||||||
|
|
||||||
Miscellaneous capabilities
|
Miscellaneous capabilities
|
||||||
@ -183,22 +183,22 @@ there is an implied `refspec *:*`.
|
|||||||
to retrieve information about blobs and trees that already exist in
|
to retrieve information about blobs and trees that already exist in
|
||||||
fast-import's memory. This requires a channel from fast-import to the
|
fast-import's memory. This requires a channel from fast-import to the
|
||||||
remote-helper.
|
remote-helper.
|
||||||
If it is advertised in addition to "import", git establishes a pipe from
|
If it is advertised in addition to "import", Git establishes a pipe from
|
||||||
fast-import to the remote-helper's stdin.
|
fast-import to the remote-helper's stdin.
|
||||||
It follows that git and fast-import are both connected to the
|
It follows that Git and fast-import are both connected to the
|
||||||
remote-helper's stdin. Because git can send multiple commands to
|
remote-helper's stdin. Because Git can send multiple commands to
|
||||||
the remote-helper it is required that helpers that use 'bidi-import'
|
the remote-helper it is required that helpers that use 'bidi-import'
|
||||||
buffer all 'import' commands of a batch before sending data to fast-import.
|
buffer all 'import' commands of a batch before sending data to fast-import.
|
||||||
This is to prevent mixing commands and fast-import responses on the
|
This is to prevent mixing commands and fast-import responses on the
|
||||||
helper's stdin.
|
helper's stdin.
|
||||||
|
|
||||||
'export-marks' <file>::
|
'export-marks' <file>::
|
||||||
This modifies the 'export' capability, instructing git to dump the
|
This modifies the 'export' capability, instructing Git to dump the
|
||||||
internal marks table to <file> when complete. For details,
|
internal marks table to <file> when complete. For details,
|
||||||
read up on '--export-marks=<file>' in linkgit:git-fast-export[1].
|
read up on '--export-marks=<file>' in linkgit:git-fast-export[1].
|
||||||
|
|
||||||
'import-marks' <file>::
|
'import-marks' <file>::
|
||||||
This modifies the 'export' capability, instructing git to load the
|
This modifies the 'export' capability, instructing Git to load the
|
||||||
marks specified in <file> before processing any input. For details,
|
marks specified in <file> before processing any input. For details,
|
||||||
read up on '--import-marks=<file>' in linkgit:git-fast-export[1].
|
read up on '--import-marks=<file>' in linkgit:git-fast-export[1].
|
||||||
|
|
||||||
@ -213,7 +213,7 @@ Commands are given by the caller on the helper's standard input, one per line.
|
|||||||
'capabilities'::
|
'capabilities'::
|
||||||
Lists the capabilities of the helper, one per line, ending
|
Lists the capabilities of the helper, one per line, ending
|
||||||
with a blank line. Each capability may be preceded with '*',
|
with a blank line. Each capability may be preceded with '*',
|
||||||
which marks them mandatory for git versions using the remote
|
which marks them mandatory for Git versions using the remote
|
||||||
helper to understand. Any unknown mandatory capability is a
|
helper to understand. Any unknown mandatory capability is a
|
||||||
fatal error.
|
fatal error.
|
||||||
+
|
+
|
||||||
@ -376,7 +376,7 @@ OPTIONS
|
|||||||
-------
|
-------
|
||||||
|
|
||||||
The following options are defined and (under suitable circumstances)
|
The following options are defined and (under suitable circumstances)
|
||||||
set by git if the remote helper has the 'option' capability.
|
set by Git if the remote helper has the 'option' capability.
|
||||||
|
|
||||||
'option verbosity' <n>::
|
'option verbosity' <n>::
|
||||||
Changes the verbosity of messages displayed by the helper.
|
Changes the verbosity of messages displayed by the helper.
|
||||||
|
@ -22,7 +22,7 @@ replacement object.
|
|||||||
|
|
||||||
Unless `-f` is given, the 'replace' reference must not yet exist.
|
Unless `-f` is given, the 'replace' reference must not yet exist.
|
||||||
|
|
||||||
Replacement references will be used by default by all git commands
|
Replacement references will be used by default by all Git commands
|
||||||
except those doing reachability traversal (prune, pack transfer and
|
except those doing reachability traversal (prune, pack transfer and
|
||||||
fsck).
|
fsck).
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ between the two operands. The following two commands are equivalent:
|
|||||||
$ git rev-list A...B
|
$ git rev-list A...B
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
'rev-list' is a very essential git command, since it
|
'rev-list' is a very essential Git command, since it
|
||||||
provides the ability to build and traverse commit ancestry graphs. For
|
provides the ability to build and traverse commit ancestry graphs. For
|
||||||
this reason, it has a lot of different options that enables it to be
|
this reason, it has a lot of different options that enables it to be
|
||||||
used by commands as different as 'git bisect' and
|
used by commands as different as 'git bisect' and
|
||||||
|
@ -14,7 +14,7 @@ SYNOPSIS
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Many git porcelainish commands take mixture of flags
|
Many Git porcelainish commands take mixture of flags
|
||||||
(i.e. parameters that begin with a dash '-') and parameters
|
(i.e. parameters that begin with a dash '-') and parameters
|
||||||
meant for the underlying 'git rev-list' command they use internally
|
meant for the underlying 'git rev-list' command they use internally
|
||||||
and flags and parameters for the other commands they use
|
and flags and parameters for the other commands they use
|
||||||
@ -147,7 +147,7 @@ shown. If the pattern does not contain a globbing character (`?`,
|
|||||||
relative to the current working directory.
|
relative to the current working directory.
|
||||||
+
|
+
|
||||||
If `$GIT_DIR` is not defined and the current directory
|
If `$GIT_DIR` is not defined and the current directory
|
||||||
is not detected to lie in a git repository or work tree
|
is not detected to lie in a Git repository or work tree
|
||||||
print a message to stderr and exit with nonzero status.
|
print a message to stderr and exit with nonzero status.
|
||||||
|
|
||||||
--is-inside-git-dir::
|
--is-inside-git-dir::
|
||||||
@ -187,9 +187,11 @@ print a message to stderr and exit with nonzero status.
|
|||||||
Flags and parameters to be parsed.
|
Flags and parameters to be parsed.
|
||||||
|
|
||||||
--resolve-git-dir <path>::
|
--resolve-git-dir <path>::
|
||||||
Check if <path> is a valid git-dir or a git-file pointing to a valid
|
Check if <path> is a valid repository or a gitfile that
|
||||||
git-dir. If <path> is a valid git-dir the resolved path to git-dir will
|
points at a valid repository, and print the location of the
|
||||||
be printed.
|
repository. If <path> is a gitfile then the resolved path
|
||||||
|
to the real repository is printed.
|
||||||
|
|
||||||
|
|
||||||
include::revisions.txt[]
|
include::revisions.txt[]
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ OPTIONS
|
|||||||
-------
|
-------
|
||||||
<file>...::
|
<file>...::
|
||||||
Files to remove. Fileglobs (e.g. `*.c`) can be given to
|
Files to remove. Fileglobs (e.g. `*.c`) can be given to
|
||||||
remove all matching files. If you want git to expand
|
remove all matching files. If you want Git to expand
|
||||||
file glob characters, you may need to shell-escape them.
|
file glob characters, you may need to shell-escape them.
|
||||||
A leading directory name
|
A leading directory name
|
||||||
(e.g. `dir` to remove `dir/file1` and `dir/file2`) can be
|
(e.g. `dir` to remove `dir/file1` and `dir/file2`) can be
|
||||||
@ -74,8 +74,8 @@ DISCUSSION
|
|||||||
|
|
||||||
The <file> list given to the command can be exact pathnames,
|
The <file> list given to the command can be exact pathnames,
|
||||||
file glob patterns, or leading directory names. The command
|
file glob patterns, or leading directory names. The command
|
||||||
removes only the paths that are known to git. Giving the name of
|
removes only the paths that are known to Git. Giving the name of
|
||||||
a file that you have not told git about does not remove that file.
|
a file that you have not told Git about does not remove that file.
|
||||||
|
|
||||||
File globbing matches across directory boundaries. Thus, given
|
File globbing matches across directory boundaries. Thus, given
|
||||||
two directories `d` and `d2`, there is a difference between
|
two directories `d` and `d2`, there is a difference between
|
||||||
@ -137,7 +137,7 @@ git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached
|
|||||||
Submodules
|
Submodules
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
Only submodules using a gitfile (which means they were cloned
|
Only submodules using a gitfile (which means they were cloned
|
||||||
with a git version 1.7.8 or newer) will be removed from the work
|
with a Git version 1.7.8 or newer) will be removed from the work
|
||||||
tree, as their repository lives inside the .git directory of the
|
tree, as their repository lives inside the .git directory of the
|
||||||
superproject. If a submodule (or one of those nested inside it)
|
superproject. If a submodule (or one of those nested inside it)
|
||||||
still uses a .git directory, `git rm` will fail - no matter if forced
|
still uses a .git directory, `git rm` will fail - no matter if forced
|
||||||
@ -156,7 +156,7 @@ EXAMPLES
|
|||||||
`Documentation` directory and any of its subdirectories.
|
`Documentation` directory and any of its subdirectories.
|
||||||
+
|
+
|
||||||
Note that the asterisk `*` is quoted from the shell in this
|
Note that the asterisk `*` is quoted from the shell in this
|
||||||
example; this lets git, and not the shell, expand the pathnames
|
example; this lets Git, and not the shell, expand the pathnames
|
||||||
of files and subdirectories under the `Documentation/` directory.
|
of files and subdirectories under the `Documentation/` directory.
|
||||||
|
|
||||||
`git rm -f git-*.sh`::
|
`git rm -f git-*.sh`::
|
||||||
|
@ -67,7 +67,7 @@ The --cc option must be repeated for each user you want on the cc list.
|
|||||||
When '--compose' is used, git send-email will use the From, Subject, and
|
When '--compose' is used, git send-email will use the From, Subject, and
|
||||||
In-Reply-To headers specified in the message. If the body of the message
|
In-Reply-To headers specified in the message. If the body of the message
|
||||||
(what you type after the headers and a blank line) only contains blank
|
(what you type after the headers and a blank line) only contains blank
|
||||||
(or GIT: prefixed) lines the summary won't be sent, but From, Subject,
|
(or Git: prefixed) lines the summary won't be sent, but From, Subject,
|
||||||
and In-Reply-To headers will be used unless they are removed.
|
and In-Reply-To headers will be used unless they are removed.
|
||||||
+
|
+
|
||||||
Missing From or In-Reply-To headers will be prompted for.
|
Missing From or In-Reply-To headers will be prompted for.
|
||||||
|
@ -3,7 +3,7 @@ git-send-pack(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-send-pack - Push objects over git protocol to another repository
|
git-send-pack - Push objects over Git protocol to another repository
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
|
@ -3,7 +3,7 @@ git-sh-setup(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-sh-setup - Common git shell script setup code
|
git-sh-setup - Common Git shell script setup code
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -19,7 +19,7 @@ Porcelain-ish scripts and/or are writing new ones.
|
|||||||
|
|
||||||
The 'git sh-setup' scriptlet is designed to be sourced (using
|
The 'git sh-setup' scriptlet is designed to be sourced (using
|
||||||
`.`) by other shell scripts to set up some variables pointing at
|
`.`) by other shell scripts to set up some variables pointing at
|
||||||
the normal git directories and a few helper shell functions.
|
the normal Git directories and a few helper shell functions.
|
||||||
|
|
||||||
Before sourcing it, your script should set up a few variables;
|
Before sourcing it, your script should set up a few variables;
|
||||||
`USAGE` (and `LONG_USAGE`, if any) is used to define message
|
`USAGE` (and `LONG_USAGE`, if any) is used to define message
|
||||||
|
@ -14,7 +14,7 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Reads given idx file for packed git archive created with
|
Reads given idx file for packed Git archive created with
|
||||||
'git pack-objects' command, and dumps its contents.
|
'git pack-objects' command, and dumps its contents.
|
||||||
|
|
||||||
The information it outputs is subset of what you can get from
|
The information it outputs is subset of what you can get from
|
||||||
|
@ -16,7 +16,7 @@ DESCRIPTION
|
|||||||
Displays paths that have differences between the index file and the
|
Displays paths that have differences between the index file and the
|
||||||
current HEAD commit, paths that have differences between the working
|
current HEAD commit, paths that have differences between the working
|
||||||
tree and the index file, and paths in the working tree that are not
|
tree and the index file, and paths in the working tree that are not
|
||||||
tracked by git (and are not ignored by linkgit:gitignore[5]). The first
|
tracked by Git (and are not ignored by linkgit:gitignore[5]). The first
|
||||||
are what you _would_ commit by running `git commit`; the second and
|
are what you _would_ commit by running `git commit`; the second and
|
||||||
third are what you _could_ commit by running 'git add' before running
|
third are what you _could_ commit by running 'git add' before running
|
||||||
`git commit`.
|
`git commit`.
|
||||||
@ -35,7 +35,7 @@ OPTIONS
|
|||||||
--porcelain::
|
--porcelain::
|
||||||
Give the output in an easy-to-parse format for scripts.
|
Give the output in an easy-to-parse format for scripts.
|
||||||
This is similar to the short output, but will remain stable
|
This is similar to the short output, but will remain stable
|
||||||
across git versions and regardless of user configuration. See
|
across Git versions and regardless of user configuration. See
|
||||||
below for details.
|
below for details.
|
||||||
|
|
||||||
--long::
|
--long::
|
||||||
@ -96,7 +96,7 @@ The default, long format, is designed to be human readable,
|
|||||||
verbose and descriptive. Its contents and format are subject to change
|
verbose and descriptive. Its contents and format are subject to change
|
||||||
at any time.
|
at any time.
|
||||||
|
|
||||||
The paths mentioned in the output, unlike many other git commands, are
|
The paths mentioned in the output, unlike many other Git commands, are
|
||||||
made relative to the current directory if you are working in a
|
made relative to the current directory if you are working in a
|
||||||
subdirectory (this is on purpose, to help cutting and pasting). See
|
subdirectory (this is on purpose, to help cutting and pasting). See
|
||||||
the status.relativePaths config option below.
|
the status.relativePaths config option below.
|
||||||
@ -168,7 +168,7 @@ Porcelain Format
|
|||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The porcelain format is similar to the short format, but is guaranteed
|
The porcelain format is similar to the short format, but is guaranteed
|
||||||
not to change in a backwards-incompatible way between git versions or
|
not to change in a backwards-incompatible way between Git versions or
|
||||||
based on user configuration. This makes it ideal for parsing by scripts.
|
based on user configuration. This makes it ideal for parsing by scripts.
|
||||||
The description of the short format above also describes the porcelain
|
The description of the short format above also describes the porcelain
|
||||||
format, with a few exceptions:
|
format, with a few exceptions:
|
||||||
|
@ -14,7 +14,7 @@ SYNOPSIS
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Clean the input in the manner used by 'git' for text such as commit
|
Clean the input in the manner used by Git for text such as commit
|
||||||
messages, notes, tags and branch descriptions.
|
messages, notes, tags and branch descriptions.
|
||||||
|
|
||||||
With no arguments, this will:
|
With no arguments, this will:
|
||||||
|
@ -91,7 +91,7 @@ working directory is used instead.
|
|||||||
<path> is the relative location for the cloned submodule to
|
<path> is the relative location for the cloned submodule to
|
||||||
exist in the superproject. If <path> does not exist, then the
|
exist in the superproject. If <path> does not exist, then the
|
||||||
submodule is created by cloning from the named URL. If <path> does
|
submodule is created by cloning from the named URL. If <path> does
|
||||||
exist and is already a valid git repository, then this is added
|
exist and is already a valid Git repository, then this is added
|
||||||
to the changeset without cloning. This second form is provided
|
to the changeset without cloning. This second form is provided
|
||||||
to ease creating a new submodule from scratch, and presumes
|
to ease creating a new submodule from scratch, and presumes
|
||||||
the user will later push the submodule to the given URL.
|
the user will later push the submodule to the given URL.
|
||||||
|
@ -3,7 +3,7 @@ git-svn(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-svn - Bidirectional operation between a Subversion repository and git
|
git-svn - Bidirectional operation between a Subversion repository and Git
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -12,8 +12,8 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
'git svn' is a simple conduit for changesets between Subversion and git.
|
'git svn' is a simple conduit for changesets between Subversion and Git.
|
||||||
It provides a bidirectional flow of changes between a Subversion and a git
|
It provides a bidirectional flow of changes between a Subversion and a Git
|
||||||
repository.
|
repository.
|
||||||
|
|
||||||
'git svn' can track a standard Subversion repository,
|
'git svn' can track a standard Subversion repository,
|
||||||
@ -21,15 +21,15 @@ following the common "trunk/branches/tags" layout, with the --stdlayout option.
|
|||||||
It can also follow branches and tags in any layout with the -T/-t/-b options
|
It can also follow branches and tags in any layout with the -T/-t/-b options
|
||||||
(see options to 'init' below, and also the 'clone' command).
|
(see options to 'init' below, and also the 'clone' command).
|
||||||
|
|
||||||
Once tracking a Subversion repository (with any of the above methods), the git
|
Once tracking a Subversion repository (with any of the above methods), the Git
|
||||||
repository can be updated from Subversion by the 'fetch' command and
|
repository can be updated from Subversion by the 'fetch' command and
|
||||||
Subversion updated from git by the 'dcommit' command.
|
Subversion updated from Git by the 'dcommit' command.
|
||||||
|
|
||||||
COMMANDS
|
COMMANDS
|
||||||
--------
|
--------
|
||||||
|
|
||||||
'init'::
|
'init'::
|
||||||
Initializes an empty git repository with additional
|
Initializes an empty Git repository with additional
|
||||||
metadata directories for 'git svn'. The Subversion URL
|
metadata directories for 'git svn'. The Subversion URL
|
||||||
may be specified as a command-line argument, or as full
|
may be specified as a command-line argument, or as full
|
||||||
URL arguments to -T/-t/-b. Optionally, the target
|
URL arguments to -T/-t/-b. Optionally, the target
|
||||||
@ -199,9 +199,9 @@ and have no uncommitted changes.
|
|||||||
Commit each diff from the current branch directly to the SVN
|
Commit each diff from the current branch directly to the SVN
|
||||||
repository, and then rebase or reset (depending on whether or
|
repository, and then rebase or reset (depending on whether or
|
||||||
not there is a diff between SVN and head). This will create
|
not there is a diff between SVN and head). This will create
|
||||||
a revision in SVN for each commit in git.
|
a revision in SVN for each commit in Git.
|
||||||
+
|
+
|
||||||
When an optional git branch name (or a git commit object name)
|
When an optional Git branch name (or a Git commit object name)
|
||||||
is specified as an argument, the subcommand works on the specified
|
is specified as an argument, the subcommand works on the specified
|
||||||
branch, not on the current branch.
|
branch, not on the current branch.
|
||||||
+
|
+
|
||||||
@ -316,7 +316,7 @@ New features:
|
|||||||
+
|
+
|
||||||
--
|
--
|
||||||
--show-commit;;
|
--show-commit;;
|
||||||
shows the git commit sha1, as well
|
shows the Git commit sha1, as well
|
||||||
--oneline;;
|
--oneline;;
|
||||||
our version of --pretty=oneline
|
our version of --pretty=oneline
|
||||||
--
|
--
|
||||||
@ -337,13 +337,13 @@ Any other arguments are passed directly to 'git log'
|
|||||||
+
|
+
|
||||||
--git-format;;
|
--git-format;;
|
||||||
Produce output in the same format as 'git blame', but with
|
Produce output in the same format as 'git blame', but with
|
||||||
SVN revision numbers instead of git commit hashes. In this mode,
|
SVN revision numbers instead of Git commit hashes. In this mode,
|
||||||
changes that haven't been committed to SVN (including local
|
changes that haven't been committed to SVN (including local
|
||||||
working-copy edits) are shown as revision 0.
|
working-copy edits) are shown as revision 0.
|
||||||
|
|
||||||
'find-rev'::
|
'find-rev'::
|
||||||
When given an SVN revision number of the form 'rN', returns the
|
When given an SVN revision number of the form 'rN', returns the
|
||||||
corresponding git commit hash (this can optionally be followed by a
|
corresponding Git commit hash (this can optionally be followed by a
|
||||||
tree-ish to specify which branch should be searched). When given a
|
tree-ish to specify which branch should be searched). When given a
|
||||||
tree-ish, returns the corresponding SVN revision number.
|
tree-ish, returns the corresponding SVN revision number.
|
||||||
+
|
+
|
||||||
@ -378,7 +378,7 @@ Any other arguments are passed directly to 'git log'
|
|||||||
the $GIT_DIR/info/exclude file.
|
the $GIT_DIR/info/exclude file.
|
||||||
|
|
||||||
'mkdirs'::
|
'mkdirs'::
|
||||||
Attempts to recreate empty directories that core git cannot track
|
Attempts to recreate empty directories that core Git cannot track
|
||||||
based on information in $GIT_DIR/svn/<refname>/unhandled.log files.
|
based on information in $GIT_DIR/svn/<refname>/unhandled.log files.
|
||||||
Empty directories are automatically recreated when using
|
Empty directories are automatically recreated when using
|
||||||
"git svn clone" and "git svn rebase", so "mkdirs" is intended
|
"git svn clone" and "git svn rebase", so "mkdirs" is intended
|
||||||
@ -510,9 +510,9 @@ order. Only the leading sha1 is read from each line, so
|
|||||||
+
|
+
|
||||||
Remove directories from the SVN tree if there are no files left
|
Remove directories from the SVN tree if there are no files left
|
||||||
behind. SVN can version empty directories, and they are not
|
behind. SVN can version empty directories, and they are not
|
||||||
removed by default if there are no files left in them. git
|
removed by default if there are no files left in them. Git
|
||||||
cannot version empty directories. Enabling this flag will make
|
cannot version empty directories. Enabling this flag will make
|
||||||
the commit to SVN act like git.
|
the commit to SVN act like Git.
|
||||||
+
|
+
|
||||||
[verse]
|
[verse]
|
||||||
config key: svn.rmdir
|
config key: svn.rmdir
|
||||||
@ -599,7 +599,7 @@ Passed directly to 'git rebase' when using 'dcommit' if a
|
|||||||
This can be used with the 'dcommit', 'rebase', 'branch' and
|
This can be used with the 'dcommit', 'rebase', 'branch' and
|
||||||
'tag' commands.
|
'tag' commands.
|
||||||
+
|
+
|
||||||
For 'dcommit', print out the series of git arguments that would show
|
For 'dcommit', print out the series of Git arguments that would show
|
||||||
which diffs would be committed to SVN.
|
which diffs would be committed to SVN.
|
||||||
+
|
+
|
||||||
For 'rebase', display the local branch associated with the upstream svn
|
For 'rebase', display the local branch associated with the upstream svn
|
||||||
@ -610,14 +610,14 @@ For 'branch' and 'tag', display the urls that will be used for copying when
|
|||||||
creating the branch or tag.
|
creating the branch or tag.
|
||||||
|
|
||||||
--use-log-author::
|
--use-log-author::
|
||||||
When retrieving svn commits into git (as part of 'fetch', 'rebase', or
|
When retrieving svn commits into Git (as part of 'fetch', 'rebase', or
|
||||||
'dcommit' operations), look for the first `From:` or `Signed-off-by:` line
|
'dcommit' operations), look for the first `From:` or `Signed-off-by:` line
|
||||||
in the log message and use that as the author string.
|
in the log message and use that as the author string.
|
||||||
--add-author-from::
|
--add-author-from::
|
||||||
When committing to svn from git (as part of 'commit-diff', 'set-tree' or 'dcommit'
|
When committing to svn from Git (as part of 'commit-diff', 'set-tree' or 'dcommit'
|
||||||
operations), if the existing log message doesn't already have a
|
operations), if the existing log message doesn't already have a
|
||||||
`From:` or `Signed-off-by:` line, append a `From:` line based on the
|
`From:` or `Signed-off-by:` line, append a `From:` line based on the
|
||||||
git commit's author string. If you use this, then `--use-log-author`
|
Git commit's author string. If you use this, then `--use-log-author`
|
||||||
will retrieve a valid author string for all commits.
|
will retrieve a valid author string for all commits.
|
||||||
|
|
||||||
|
|
||||||
@ -642,7 +642,7 @@ ADVANCED OPTIONS
|
|||||||
one of the repository layout options --trunk, --tags,
|
one of the repository layout options --trunk, --tags,
|
||||||
--branches, --stdlayout). For each tracked branch, try to find
|
--branches, --stdlayout). For each tracked branch, try to find
|
||||||
out where its revision was copied from, and set
|
out where its revision was copied from, and set
|
||||||
a suitable parent in the first git commit for the branch.
|
a suitable parent in the first Git commit for the branch.
|
||||||
This is especially helpful when we're tracking a directory
|
This is especially helpful when we're tracking a directory
|
||||||
that has been moved around within the repository. If this
|
that has been moved around within the repository. If this
|
||||||
feature is disabled, the branches created by 'git svn' will all
|
feature is disabled, the branches created by 'git svn' will all
|
||||||
@ -674,7 +674,7 @@ option for (hopefully) obvious reasons.
|
|||||||
+
|
+
|
||||||
This option is NOT recommended as it makes it difficult to track down
|
This option is NOT recommended as it makes it difficult to track down
|
||||||
old references to SVN revision numbers in existing documentation, bug
|
old references to SVN revision numbers in existing documentation, bug
|
||||||
reports and archives. If you plan to eventually migrate from SVN to git
|
reports and archives. If you plan to eventually migrate from SVN to Git
|
||||||
and are certain about dropping SVN history, consider
|
and are certain about dropping SVN history, consider
|
||||||
linkgit:git-filter-branch[1] instead. filter-branch also allows
|
linkgit:git-filter-branch[1] instead. filter-branch also allows
|
||||||
reformatting of metadata for ease-of-reading and rewriting authorship
|
reformatting of metadata for ease-of-reading and rewriting authorship
|
||||||
@ -714,7 +714,7 @@ svn-remote.<name>.rewriteUUID::
|
|||||||
|
|
||||||
svn-remote.<name>.pushurl::
|
svn-remote.<name>.pushurl::
|
||||||
|
|
||||||
Similar to git's 'remote.<name>.pushurl', this key is designed
|
Similar to Git's 'remote.<name>.pushurl', this key is designed
|
||||||
to be used in cases where 'url' points to an SVN repository
|
to be used in cases where 'url' points to an SVN repository
|
||||||
via a read-only transport, to provide an alternate read/write
|
via a read-only transport, to provide an alternate read/write
|
||||||
transport. It is assumed that both keys point to the same
|
transport. It is assumed that both keys point to the same
|
||||||
@ -768,15 +768,15 @@ Tracking and contributing to the trunk of a Subversion-managed project
|
|||||||
cd trunk
|
cd trunk
|
||||||
# You should be on master branch, double-check with 'git branch'
|
# You should be on master branch, double-check with 'git branch'
|
||||||
git branch
|
git branch
|
||||||
# Do some work and commit locally to git:
|
# Do some work and commit locally to Git:
|
||||||
git commit ...
|
git commit ...
|
||||||
# Something is committed to SVN, rebase your local changes against the
|
# Something is committed to SVN, rebase your local changes against the
|
||||||
# latest changes in SVN:
|
# latest changes in SVN:
|
||||||
git svn rebase
|
git svn rebase
|
||||||
# Now commit your changes (that were committed previously using git) to SVN,
|
# Now commit your changes (that were committed previously using Git) to SVN,
|
||||||
# as well as automatically updating your working HEAD:
|
# as well as automatically updating your working HEAD:
|
||||||
git svn dcommit
|
git svn dcommit
|
||||||
# Append svn:ignore settings to the default git exclude file:
|
# Append svn:ignore settings to the default Git exclude file:
|
||||||
git svn show-ignore >> .git/info/exclude
|
git svn show-ignore >> .git/info/exclude
|
||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -816,7 +816,7 @@ have each person clone that repository with 'git clone':
|
|||||||
git remote add origin server:/pub/project
|
git remote add origin server:/pub/project
|
||||||
git config --replace-all remote.origin.fetch '+refs/remotes/*:refs/remotes/*'
|
git config --replace-all remote.origin.fetch '+refs/remotes/*:refs/remotes/*'
|
||||||
git fetch
|
git fetch
|
||||||
# Prevent fetch/pull from remote git server in the future,
|
# Prevent fetch/pull from remote Git server in the future,
|
||||||
# we only want to use git svn for future updates
|
# we only want to use git svn for future updates
|
||||||
git config --remove-section remote.origin
|
git config --remove-section remote.origin
|
||||||
# Create a local branch from one of the branches just fetched
|
# Create a local branch from one of the branches just fetched
|
||||||
@ -849,13 +849,13 @@ While 'git svn' can track
|
|||||||
copy history (including branches and tags) for repositories adopting a
|
copy history (including branches and tags) for repositories adopting a
|
||||||
standard layout, it cannot yet represent merge history that happened
|
standard layout, it cannot yet represent merge history that happened
|
||||||
inside git back upstream to SVN users. Therefore it is advised that
|
inside git back upstream to SVN users. Therefore it is advised that
|
||||||
users keep history as linear as possible inside git to ease
|
users keep history as linear as possible inside Git to ease
|
||||||
compatibility with SVN (see the CAVEATS section below).
|
compatibility with SVN (see the CAVEATS section below).
|
||||||
|
|
||||||
HANDLING OF SVN BRANCHES
|
HANDLING OF SVN BRANCHES
|
||||||
------------------------
|
------------------------
|
||||||
If 'git svn' is configured to fetch branches (and --follow-branches
|
If 'git svn' is configured to fetch branches (and --follow-branches
|
||||||
is in effect), it sometimes creates multiple git branches for one
|
is in effect), it sometimes creates multiple Git branches for one
|
||||||
SVN branch, where the addtional branches have names of the form
|
SVN branch, where the addtional branches have names of the form
|
||||||
'branchname@nnn' (with nnn an SVN revision number). These additional
|
'branchname@nnn' (with nnn an SVN revision number). These additional
|
||||||
branches are created if 'git svn' cannot find a parent commit for the
|
branches are created if 'git svn' cannot find a parent commit for the
|
||||||
@ -865,17 +865,17 @@ the other branches.
|
|||||||
Normally, the first commit in an SVN branch consists
|
Normally, the first commit in an SVN branch consists
|
||||||
of a copy operation. 'git svn' will read this commit to get the SVN
|
of a copy operation. 'git svn' will read this commit to get the SVN
|
||||||
revision the branch was created from. It will then try to find the
|
revision the branch was created from. It will then try to find the
|
||||||
git commit that corresponds to this SVN revision, and use that as the
|
Git commit that corresponds to this SVN revision, and use that as the
|
||||||
parent of the branch. However, it is possible that there is no suitable
|
parent of the branch. However, it is possible that there is no suitable
|
||||||
git commit to serve as parent. This will happen, among other reasons,
|
Git commit to serve as parent. This will happen, among other reasons,
|
||||||
if the SVN branch is a copy of a revision that was not fetched by 'git
|
if the SVN branch is a copy of a revision that was not fetched by 'git
|
||||||
svn' (e.g. because it is an old revision that was skipped with
|
svn' (e.g. because it is an old revision that was skipped with
|
||||||
'--revision'), or if in SVN a directory was copied that is not tracked
|
'--revision'), or if in SVN a directory was copied that is not tracked
|
||||||
by 'git svn' (such as a branch that is not tracked at all, or a
|
by 'git svn' (such as a branch that is not tracked at all, or a
|
||||||
subdirectory of a tracked branch). In these cases, 'git svn' will still
|
subdirectory of a tracked branch). In these cases, 'git svn' will still
|
||||||
create a git branch, but instead of using an existing git commit as the
|
create a Git branch, but instead of using an existing Git commit as the
|
||||||
parent of the branch, it will read the SVN history of the directory the
|
parent of the branch, it will read the SVN history of the directory the
|
||||||
branch was copied from and create appropriate git commits. This is
|
branch was copied from and create appropriate Git commits. This is
|
||||||
indicated by the message "Initializing parent: <branchname>".
|
indicated by the message "Initializing parent: <branchname>".
|
||||||
|
|
||||||
Additionally, it will create a special branch named
|
Additionally, it will create a special branch named
|
||||||
@ -885,15 +885,15 @@ created parent commit of the branch. If in SVN the branch was deleted
|
|||||||
and later recreated from a different version, there will be multiple
|
and later recreated from a different version, there will be multiple
|
||||||
such branches with an '@'.
|
such branches with an '@'.
|
||||||
|
|
||||||
Note that this may mean that multiple git commits are created for a
|
Note that this may mean that multiple Git commits are created for a
|
||||||
single SVN revision.
|
single SVN revision.
|
||||||
|
|
||||||
An example: in an SVN repository with a standard
|
An example: in an SVN repository with a standard
|
||||||
trunk/tags/branches layout, a directory trunk/sub is created in r.100.
|
trunk/tags/branches layout, a directory trunk/sub is created in r.100.
|
||||||
In r.200, trunk/sub is branched by copying it to branches/. 'git svn
|
In r.200, trunk/sub is branched by copying it to branches/. 'git svn
|
||||||
clone -s' will then create a branch 'sub'. It will also create new git
|
clone -s' will then create a branch 'sub'. It will also create new Git
|
||||||
commits for r.100 through r.199 and use these as the history of branch
|
commits for r.100 through r.199 and use these as the history of branch
|
||||||
'sub'. Thus there will be two git commits for each revision from r.100
|
'sub'. Thus there will be two Git commits for each revision from r.100
|
||||||
to r.199 (one containing trunk/, one containing trunk/sub/). Finally,
|
to r.199 (one containing trunk/, one containing trunk/sub/). Finally,
|
||||||
it will create a branch 'sub@200' pointing to the new parent commit of
|
it will create a branch 'sub@200' pointing to the new parent commit of
|
||||||
branch 'sub' (i.e. the commit for r.200 and trunk/sub/).
|
branch 'sub' (i.e. the commit for r.200 and trunk/sub/).
|
||||||
@ -904,13 +904,13 @@ CAVEATS
|
|||||||
For the sake of simplicity and interoperating with Subversion,
|
For the sake of simplicity and interoperating with Subversion,
|
||||||
it is recommended that all 'git svn' users clone, fetch and dcommit
|
it is recommended that all 'git svn' users clone, fetch and dcommit
|
||||||
directly from the SVN server, and avoid all 'git clone'/'pull'/'merge'/'push'
|
directly from the SVN server, and avoid all 'git clone'/'pull'/'merge'/'push'
|
||||||
operations between git repositories and branches. The recommended
|
operations between Git repositories and branches. The recommended
|
||||||
method of exchanging code between git branches and users is
|
method of exchanging code between Git branches and users is
|
||||||
'git format-patch' and 'git am', or just 'dcommit'ing to the SVN repository.
|
'git format-patch' and 'git am', or just 'dcommit'ing to the SVN repository.
|
||||||
|
|
||||||
Running 'git merge' or 'git pull' is NOT recommended on a branch you
|
Running 'git merge' or 'git pull' is NOT recommended on a branch you
|
||||||
plan to 'dcommit' from because Subversion users cannot see any
|
plan to 'dcommit' from because Subversion users cannot see any
|
||||||
merges you've made. Furthermore, if you merge or pull from a git branch
|
merges you've made. Furthermore, if you merge or pull from a Git branch
|
||||||
that is a mirror of an SVN branch, 'dcommit' may commit to the wrong
|
that is a mirror of an SVN branch, 'dcommit' may commit to the wrong
|
||||||
branch.
|
branch.
|
||||||
|
|
||||||
@ -929,7 +929,7 @@ any 'git svn' metadata, or config. So repositories created and managed with
|
|||||||
using 'git svn' should use 'rsync' for cloning, if cloning is to be done
|
using 'git svn' should use 'rsync' for cloning, if cloning is to be done
|
||||||
at all.
|
at all.
|
||||||
|
|
||||||
Since 'dcommit' uses rebase internally, any git branches you 'git push' to
|
Since 'dcommit' uses rebase internally, any Git branches you 'git push' to
|
||||||
before 'dcommit' on will require forcing an overwrite of the existing ref
|
before 'dcommit' on will require forcing an overwrite of the existing ref
|
||||||
on the remote repository. This is generally considered bad practice,
|
on the remote repository. This is generally considered bad practice,
|
||||||
see the linkgit:git-push[1] documentation for details.
|
see the linkgit:git-push[1] documentation for details.
|
||||||
@ -941,7 +941,7 @@ dcommit with SVN is analogous to that.
|
|||||||
|
|
||||||
When cloning an SVN repository, if none of the options for describing
|
When cloning an SVN repository, if none of the options for describing
|
||||||
the repository layout is used (--trunk, --tags, --branches,
|
the repository layout is used (--trunk, --tags, --branches,
|
||||||
--stdlayout), 'git svn clone' will create a git repository with
|
--stdlayout), 'git svn clone' will create a Git repository with
|
||||||
completely linear history, where branches and tags appear as separate
|
completely linear history, where branches and tags appear as separate
|
||||||
directories in the working copy. While this is the easiest way to get a
|
directories in the working copy. While this is the easiest way to get a
|
||||||
copy of a complete repository, for projects with many branches it will
|
copy of a complete repository, for projects with many branches it will
|
||||||
@ -957,7 +957,7 @@ branches and tags is required, the options '--trunk' / '--branches' /
|
|||||||
When using multiple --branches or --tags, 'git svn' does not automatically
|
When using multiple --branches or --tags, 'git svn' does not automatically
|
||||||
handle name collisions (for example, if two branches from different paths have
|
handle name collisions (for example, if two branches from different paths have
|
||||||
the same name, or if a branch and a tag have the same name). In these cases,
|
the same name, or if a branch and a tag have the same name). In these cases,
|
||||||
use 'init' to set up your git repository then, before your first 'fetch', edit
|
use 'init' to set up your Git repository then, before your first 'fetch', edit
|
||||||
the .git/config file so that the branches and tags are associated with
|
the .git/config file so that the branches and tags are associated with
|
||||||
different name spaces. For example:
|
different name spaces. For example:
|
||||||
|
|
||||||
@ -970,12 +970,12 @@ BUGS
|
|||||||
We ignore all SVN properties except svn:executable. Any unhandled
|
We ignore all SVN properties except svn:executable. Any unhandled
|
||||||
properties are logged to $GIT_DIR/svn/<refname>/unhandled.log
|
properties are logged to $GIT_DIR/svn/<refname>/unhandled.log
|
||||||
|
|
||||||
Renamed and copied directories are not detected by git and hence not
|
Renamed and copied directories are not detected by Git and hence not
|
||||||
tracked when committing to SVN. I do not plan on adding support for
|
tracked when committing to SVN. I do not plan on adding support for
|
||||||
this as it's quite difficult and time-consuming to get working for all
|
this as it's quite difficult and time-consuming to get working for all
|
||||||
the possible corner cases (git doesn't do it, either). Committing
|
the possible corner cases (Git doesn't do it, either). Committing
|
||||||
renamed and copied files is fully supported if they're similar enough
|
renamed and copied files is fully supported if they're similar enough
|
||||||
for git to detect them.
|
for Git to detect them.
|
||||||
|
|
||||||
In SVN, it is possible (though discouraged) to commit changes to a tag
|
In SVN, it is possible (though discouraged) to commit changes to a tag
|
||||||
(because a tag is just a directory copy, thus technically the same as a
|
(because a tag is just a directory copy, thus technically the same as a
|
||||||
@ -987,7 +987,7 @@ CONFIGURATION
|
|||||||
-------------
|
-------------
|
||||||
|
|
||||||
'git svn' stores [svn-remote] configuration information in the
|
'git svn' stores [svn-remote] configuration information in the
|
||||||
repository .git/config file. It is similar the core git
|
repository .git/config file. It is similar the core Git
|
||||||
[remote] sections except 'fetch' keys do not accept glob
|
[remote] sections except 'fetch' keys do not accept glob
|
||||||
arguments; but they are instead handled by the 'branches'
|
arguments; but they are instead handled by the 'branches'
|
||||||
and 'tags' keys. Since some SVN repositories are oddly
|
and 'tags' keys. Since some SVN repositories are oddly
|
||||||
|
@ -242,7 +242,7 @@ $ git pull git://git..../proj.git master
|
|||||||
In such a case, you do not want to automatically follow the other
|
In such a case, you do not want to automatically follow the other
|
||||||
person's tags.
|
person's tags.
|
||||||
|
|
||||||
One important aspect of git is its distributed nature, which
|
One important aspect of Git is its distributed nature, which
|
||||||
largely means there is no inherent "upstream" or
|
largely means there is no inherent "upstream" or
|
||||||
"downstream" in the system. On the face of it, the above
|
"downstream" in the system. On the face of it, the above
|
||||||
example might seem to indicate that the tag namespace is owned
|
example might seem to indicate that the tag namespace is owned
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
A short git tools survey
|
A short Git tools survey
|
||||||
========================
|
========================
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Apart from git contrib/ area there are some others third-party tools
|
Apart from Git contrib/ area there are some others third-party tools
|
||||||
you may want to look.
|
you may want to look.
|
||||||
|
|
||||||
This document presents a brief summary of each tool and the corresponding
|
This document presents a brief summary of each tool and the corresponding
|
||||||
@ -17,26 +17,26 @@ Alternative/Augmentative Porcelains
|
|||||||
|
|
||||||
- *Cogito* (http://www.kernel.org/pub/software/scm/cogito/)
|
- *Cogito* (http://www.kernel.org/pub/software/scm/cogito/)
|
||||||
|
|
||||||
Cogito is a version control system layered on top of the git tree history
|
Cogito is a version control system layered on top of the Git tree history
|
||||||
storage system. It aims at seamless user interface and ease of use,
|
storage system. It aims at seamless user interface and ease of use,
|
||||||
providing generally smoother user experience than the "raw" Core GIT
|
providing generally smoother user experience than the "raw" Core Git
|
||||||
itself and indeed many other version control systems.
|
itself and indeed many other version control systems.
|
||||||
|
|
||||||
Cogito is no longer maintained as most of its functionality
|
Cogito is no longer maintained as most of its functionality
|
||||||
is now in core GIT.
|
is now in core Git.
|
||||||
|
|
||||||
|
|
||||||
- *pg* (http://www.spearce.org/category/projects/scm/pg/)
|
- *pg* (http://www.spearce.org/category/projects/scm/pg/)
|
||||||
|
|
||||||
pg is a shell script wrapper around GIT to help the user manage a set of
|
pg is a shell script wrapper around Git to help the user manage a set of
|
||||||
patches to files. pg is somewhat like quilt or StGIT, but it does have a
|
patches to files. pg is somewhat like quilt or StGit, but it does have a
|
||||||
slightly different feature set.
|
slightly different feature set.
|
||||||
|
|
||||||
|
|
||||||
- *StGit* (http://www.procode.org/stgit/)
|
- *StGit* (http://www.procode.org/stgit/)
|
||||||
|
|
||||||
Stacked GIT provides a quilt-like patch management functionality in the
|
Stacked Git provides a quilt-like patch management functionality in the
|
||||||
GIT environment. You can easily manage your patches in the scope of GIT
|
Git environment. You can easily manage your patches in the scope of Git
|
||||||
until they get merged upstream.
|
until they get merged upstream.
|
||||||
|
|
||||||
|
|
||||||
@ -45,33 +45,33 @@ History Viewers
|
|||||||
|
|
||||||
- *gitk* (shipped with git-core)
|
- *gitk* (shipped with git-core)
|
||||||
|
|
||||||
gitk is a simple Tk GUI for browsing history of GIT repositories easily.
|
gitk is a simple Tk GUI for browsing history of Git repositories easily.
|
||||||
|
|
||||||
|
|
||||||
- *gitview* (contrib/)
|
- *gitview* (contrib/)
|
||||||
|
|
||||||
gitview is a GTK based repository browser for git
|
gitview is a GTK based repository browser for Git
|
||||||
|
|
||||||
|
|
||||||
- *gitweb* (shipped with git-core)
|
- *gitweb* (shipped with git-core)
|
||||||
|
|
||||||
GITweb provides full-fledged web interface for GIT repositories.
|
Gitweb provides full-fledged web interface for Git repositories.
|
||||||
|
|
||||||
|
|
||||||
- *qgit* (http://digilander.libero.it/mcostalba/)
|
- *qgit* (http://digilander.libero.it/mcostalba/)
|
||||||
|
|
||||||
QGit is a git/StGIT GUI viewer built on Qt/C++. QGit could be used
|
QGit is a git/StGit GUI viewer built on Qt/C++. QGit could be used
|
||||||
to browse history and directory tree, view annotated files, commit
|
to browse history and directory tree, view annotated files, commit
|
||||||
changes cherry picking single files or applying patches.
|
changes cherry picking single files or applying patches.
|
||||||
Currently it is the fastest and most feature rich among the git
|
Currently it is the fastest and most feature rich among the Git
|
||||||
viewers and commit tools.
|
viewers and commit tools.
|
||||||
|
|
||||||
- *tig* (http://jonas.nitro.dk/tig/)
|
- *tig* (http://jonas.nitro.dk/tig/)
|
||||||
|
|
||||||
tig by Jonas Fonseca is a simple git repository browser
|
tig by Jonas Fonseca is a simple Git repository browser
|
||||||
written using ncurses. Basically, it just acts as a front-end
|
written using ncurses. Basically, it just acts as a front-end
|
||||||
for git-log and git-show/git-diff. Additionally, you can also
|
for git-log and git-show/git-diff. Additionally, you can also
|
||||||
use it as a pager for git commands.
|
use it as a pager for Git commands.
|
||||||
|
|
||||||
|
|
||||||
Foreign SCM interface
|
Foreign SCM interface
|
||||||
@ -80,20 +80,20 @@ Foreign SCM interface
|
|||||||
- *git-svn* (shipped with git-core)
|
- *git-svn* (shipped with git-core)
|
||||||
|
|
||||||
git-svn is a simple conduit for changesets between a single Subversion
|
git-svn is a simple conduit for changesets between a single Subversion
|
||||||
branch and git.
|
branch and Git.
|
||||||
|
|
||||||
|
|
||||||
- *quilt2git / git2quilt* (http://home-tj.org/wiki/index.php/Misc)
|
- *quilt2git / git2quilt* (http://home-tj.org/wiki/index.php/Misc)
|
||||||
|
|
||||||
These utilities convert patch series in a quilt repository and commit
|
These utilities convert patch series in a quilt repository and commit
|
||||||
series in git back and forth.
|
series in Git back and forth.
|
||||||
|
|
||||||
|
|
||||||
- *hg-to-git* (contrib/)
|
- *hg-to-git* (contrib/)
|
||||||
|
|
||||||
hg-to-git converts a Mercurial repository into a git one, and
|
hg-to-git converts a Mercurial repository into a Git one, and
|
||||||
preserves the full branch history in the process. hg-to-git can
|
preserves the full branch history in the process. hg-to-git can
|
||||||
also be used in an incremental way to keep the git repository
|
also be used in an incremental way to keep the Git repository
|
||||||
in sync with the master Mercurial repository.
|
in sync with the master Mercurial repository.
|
||||||
|
|
||||||
|
|
||||||
@ -102,14 +102,14 @@ Others
|
|||||||
|
|
||||||
- *(h)gct* (http://www.cyd.liu.se/users/~freku045/gct/)
|
- *(h)gct* (http://www.cyd.liu.se/users/~freku045/gct/)
|
||||||
|
|
||||||
Commit Tool or (h)gct is a GUI enabled commit tool for git and
|
Commit Tool or (h)gct is a GUI enabled commit tool for Git and
|
||||||
Mercurial (hg). It allows the user to view diffs, select which files
|
Mercurial (hg). It allows the user to view diffs, select which files
|
||||||
to committed (or ignored / reverted) write commit messages and
|
to committed (or ignored / reverted) write commit messages and
|
||||||
perform the commit itself.
|
perform the commit itself.
|
||||||
|
|
||||||
- *git.el* (contrib/)
|
- *git.el* (contrib/)
|
||||||
|
|
||||||
This is an Emacs interface for git. The user interface is modeled on
|
This is an Emacs interface for Git. The user interface is modeled on
|
||||||
pcl-cvs. It has been developed on Emacs 21 and will probably need some
|
pcl-cvs. It has been developed on Emacs 21 and will probably need some
|
||||||
tweaking to work on XEmacs.
|
tweaking to work on XEmacs.
|
||||||
|
|
||||||
|
@ -82,10 +82,10 @@ OPTIONS
|
|||||||
When these flags are specified, the object names recorded
|
When these flags are specified, the object names recorded
|
||||||
for the paths are not updated. Instead, these options
|
for the paths are not updated. Instead, these options
|
||||||
set and unset the "assume unchanged" bit for the
|
set and unset the "assume unchanged" bit for the
|
||||||
paths. When the "assume unchanged" bit is on, git stops
|
paths. When the "assume unchanged" bit is on, Git stops
|
||||||
checking the working tree files for possible
|
checking the working tree files for possible
|
||||||
modifications, so you need to manually unset the bit to
|
modifications, so you need to manually unset the bit to
|
||||||
tell git when you change the working tree file. This is
|
tell Git when you change the working tree file. This is
|
||||||
sometimes helpful when working with a big project on a
|
sometimes helpful when working with a big project on a
|
||||||
filesystem that has very slow lstat(2) system call
|
filesystem that has very slow lstat(2) system call
|
||||||
(e.g. cifs).
|
(e.g. cifs).
|
||||||
@ -253,18 +253,18 @@ $ git ls-files -s
|
|||||||
Using ``assume unchanged'' bit
|
Using ``assume unchanged'' bit
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
Many operations in git depend on your filesystem to have an
|
Many operations in Git depend on your filesystem to have an
|
||||||
efficient `lstat(2)` implementation, so that `st_mtime`
|
efficient `lstat(2)` implementation, so that `st_mtime`
|
||||||
information for working tree files can be cheaply checked to see
|
information for working tree files can be cheaply checked to see
|
||||||
if the file contents have changed from the version recorded in
|
if the file contents have changed from the version recorded in
|
||||||
the index file. Unfortunately, some filesystems have
|
the index file. Unfortunately, some filesystems have
|
||||||
inefficient `lstat(2)`. If your filesystem is one of them, you
|
inefficient `lstat(2)`. If your filesystem is one of them, you
|
||||||
can set "assume unchanged" bit to paths you have not changed to
|
can set "assume unchanged" bit to paths you have not changed to
|
||||||
cause git not to do this check. Note that setting this bit on a
|
cause Git not to do this check. Note that setting this bit on a
|
||||||
path does not mean git will check the contents of the file to
|
path does not mean Git will check the contents of the file to
|
||||||
see if it has changed -- it makes git to omit any checking and
|
see if it has changed -- it makes Git to omit any checking and
|
||||||
assume it has *not* changed. When you make changes to working
|
assume it has *not* changed. When you make changes to working
|
||||||
tree files, you have to explicitly tell git about it by dropping
|
tree files, you have to explicitly tell Git about it by dropping
|
||||||
"assume unchanged" bit, either before or after you modify them.
|
"assume unchanged" bit, either before or after you modify them.
|
||||||
|
|
||||||
In order to set "assume unchanged" bit, use `--assume-unchanged`
|
In order to set "assume unchanged" bit, use `--assume-unchanged`
|
||||||
@ -274,7 +274,7 @@ have the "assume unchanged" bit set, use `git ls-files -v`
|
|||||||
|
|
||||||
The command looks at `core.ignorestat` configuration variable. When
|
The command looks at `core.ignorestat` configuration variable. When
|
||||||
this is true, paths updated with `git update-index paths...` and
|
this is true, paths updated with `git update-index paths...` and
|
||||||
paths updated with other git commands that update both index and
|
paths updated with other Git commands that update both index and
|
||||||
working tree (e.g. 'git apply --index', 'git checkout-index -u',
|
working tree (e.g. 'git apply --index', 'git checkout-index -u',
|
||||||
and 'git read-tree -u') are automatically marked as "assume
|
and 'git read-tree -u') are automatically marked as "assume
|
||||||
unchanged". Note that "assume unchanged" bit is *not* set if
|
unchanged". Note that "assume unchanged" bit is *not* set if
|
||||||
|
@ -73,7 +73,7 @@ in ref value. Log lines are formatted as:
|
|||||||
Where "oldsha1" is the 40 character hexadecimal value previously
|
Where "oldsha1" is the 40 character hexadecimal value previously
|
||||||
stored in <ref>, "newsha1" is the 40 character hexadecimal value of
|
stored in <ref>, "newsha1" is the 40 character hexadecimal value of
|
||||||
<newvalue> and "committer" is the committer's name, email address
|
<newvalue> and "committer" is the committer's name, email address
|
||||||
and date in the standard GIT committer ident format.
|
and date in the standard Git committer ident format.
|
||||||
|
|
||||||
Optionally with -m:
|
Optionally with -m:
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ SYNOPSIS
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Invoked by 'git archive --remote' and sends a generated archive to the
|
Invoked by 'git archive --remote' and sends a generated archive to the
|
||||||
other end over the git protocol.
|
other end over the Git protocol.
|
||||||
|
|
||||||
This command is usually not invoked directly by the end user. The UI
|
This command is usually not invoked directly by the end user. The UI
|
||||||
for the protocol is on the 'git archive' side, and the program pair
|
for the protocol is on the 'git archive' side, and the program pair
|
||||||
|
@ -26,7 +26,7 @@ OPTIONS
|
|||||||
-------
|
-------
|
||||||
|
|
||||||
--strict::
|
--strict::
|
||||||
Do not try <directory>/.git/ if <directory> is no git directory.
|
Do not try <directory>/.git/ if <directory> is no Git directory.
|
||||||
|
|
||||||
--timeout=<n>::
|
--timeout=<n>::
|
||||||
Interrupt transfer after <n> seconds of inactivity.
|
Interrupt transfer after <n> seconds of inactivity.
|
||||||
|
@ -3,7 +3,7 @@ git-var(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-var - Show a git logical variable
|
git-var - Show a Git logical variable
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
@ -13,13 +13,13 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Prints a git logical variable.
|
Prints a Git logical variable.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
-l::
|
-l::
|
||||||
Cause the logical variables to be listed. In addition, all the
|
Cause the logical variables to be listed. In addition, all the
|
||||||
variables of the git configuration file .git/config are listed
|
variables of the Git configuration file .git/config are listed
|
||||||
as well. (However, the configuration variables listing functionality
|
as well. (However, the configuration variables listing functionality
|
||||||
is deprecated in favor of `git config -l`.)
|
is deprecated in favor of `git config -l`.)
|
||||||
|
|
||||||
@ -35,10 +35,10 @@ GIT_AUTHOR_IDENT::
|
|||||||
The author of a piece of code.
|
The author of a piece of code.
|
||||||
|
|
||||||
GIT_COMMITTER_IDENT::
|
GIT_COMMITTER_IDENT::
|
||||||
The person who put a piece of code into git.
|
The person who put a piece of code into Git.
|
||||||
|
|
||||||
GIT_EDITOR::
|
GIT_EDITOR::
|
||||||
Text editor for use by git commands. The value is meant to be
|
Text editor for use by Git commands. The value is meant to be
|
||||||
interpreted by the shell when it is used. Examples: `~/bin/vi`,
|
interpreted by the shell when it is used. Examples: `~/bin/vi`,
|
||||||
`$SOME_ENVIRONMENT_VARIABLE`, `"C:\Program Files\Vim\gvim.exe"
|
`$SOME_ENVIRONMENT_VARIABLE`, `"C:\Program Files\Vim\gvim.exe"
|
||||||
--nofork`. The order of preference is the `$GIT_EDITOR`
|
--nofork`. The order of preference is the `$GIT_EDITOR`
|
||||||
@ -50,7 +50,7 @@ ifdef::git-default-editor[]
|
|||||||
endif::git-default-editor[]
|
endif::git-default-editor[]
|
||||||
|
|
||||||
GIT_PAGER::
|
GIT_PAGER::
|
||||||
Text viewer for use by git commands (e.g., 'less'). The value
|
Text viewer for use by Git commands (e.g., 'less'). The value
|
||||||
is meant to be interpreted by the shell. The order of preference
|
is meant to be interpreted by the shell. The order of preference
|
||||||
is the `$GIT_PAGER` environment variable, then `core.pager`
|
is the `$GIT_PAGER` environment variable, then `core.pager`
|
||||||
configuration, then `$PAGER`, and then the default chosen at
|
configuration, then `$PAGER`, and then the default chosen at
|
||||||
|
@ -3,7 +3,7 @@ git-verify-pack(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-verify-pack - Validate packed git archive files
|
git-verify-pack - Validate packed Git archive files
|
||||||
|
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
@ -14,7 +14,7 @@ SYNOPSIS
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
Reads given idx file for packed git archive created with the
|
Reads given idx file for packed Git archive created with the
|
||||||
'git pack-objects' command and verifies idx file and the
|
'git pack-objects' command and verifies idx file and the
|
||||||
corresponding pack file.
|
corresponding pack file.
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ OPTIONS
|
|||||||
Print the contents of the tag object before validating it.
|
Print the contents of the tag object before validating it.
|
||||||
|
|
||||||
<tag>...::
|
<tag>...::
|
||||||
SHA1 identifiers of git tag objects.
|
SHA1 identifiers of Git tag objects.
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
---
|
---
|
||||||
|
@ -3,7 +3,7 @@ git-web{litdd}browse(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
git-web--browse - git helper script to launch a web browser
|
git-web--browse - Git helper script to launch a web browser
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -50,7 +50,7 @@ OPTIONS
|
|||||||
|
|
||||||
-c <conf.var>::
|
-c <conf.var>::
|
||||||
--config=<conf.var>::
|
--config=<conf.var>::
|
||||||
CONF.VAR is looked up in the git config files. If it's set,
|
CONF.VAR is looked up in the Git config files. If it's set,
|
||||||
then its value specifies the browser that should be used.
|
then its value specifies the browser that should be used.
|
||||||
|
|
||||||
CONFIGURATION VARIABLES
|
CONFIGURATION VARIABLES
|
||||||
|
@ -24,7 +24,7 @@ This manual page describes only the most frequently used options.
|
|||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
-p::
|
-p::
|
||||||
Show textual diffs, instead of the git internal diff
|
Show textual diffs, instead of the Git internal diff
|
||||||
output format that is useful only to tell the changed
|
output format that is useful only to tell the changed
|
||||||
paths and their nature of changes.
|
paths and their nature of changes.
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ OPTIONS
|
|||||||
exclusive, top inclusive).
|
exclusive, top inclusive).
|
||||||
|
|
||||||
-r::
|
-r::
|
||||||
Show git internal diff output, but for the whole tree,
|
Show Git internal diff output, but for the whole tree,
|
||||||
not just the top level.
|
not just the top level.
|
||||||
|
|
||||||
-m::
|
-m::
|
||||||
|
@ -27,11 +27,11 @@ commands. The link:user-manual.html[Git User's Manual] has a more
|
|||||||
in-depth introduction.
|
in-depth introduction.
|
||||||
|
|
||||||
After you mastered the basic concepts, you can come back to this
|
After you mastered the basic concepts, you can come back to this
|
||||||
page to learn what commands git offers. You can learn more about
|
page to learn what commands Git offers. You can learn more about
|
||||||
individual git commands with "git help command". linkgit:gitcli[7]
|
individual Git commands with "git help command". linkgit:gitcli[7]
|
||||||
manual page gives you an overview of the command line command syntax.
|
manual page gives you an overview of the command line command syntax.
|
||||||
|
|
||||||
Formatted and hyperlinked version of the latest git documentation
|
Formatted and hyperlinked version of the latest Git documentation
|
||||||
can be viewed at `http://git-htmldocs.googlecode.com/git/git.html`.
|
can be viewed at `http://git-htmldocs.googlecode.com/git/git.html`.
|
||||||
|
|
||||||
ifdef::stalenotes[]
|
ifdef::stalenotes[]
|
||||||
@ -39,7 +39,7 @@ ifdef::stalenotes[]
|
|||||||
============
|
============
|
||||||
|
|
||||||
You are reading the documentation for the latest (possibly
|
You are reading the documentation for the latest (possibly
|
||||||
unreleased) version of git, that is available from 'master'
|
unreleased) version of Git, that is available from 'master'
|
||||||
branch of the `git.git` repository.
|
branch of the `git.git` repository.
|
||||||
Documentation for older releases are available here:
|
Documentation for older releases are available here:
|
||||||
|
|
||||||
@ -355,12 +355,12 @@ endif::stalenotes[]
|
|||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
--version::
|
--version::
|
||||||
Prints the git suite version that the 'git' program came from.
|
Prints the Git suite version that the 'git' program came from.
|
||||||
|
|
||||||
--help::
|
--help::
|
||||||
Prints the synopsis and a list of the most commonly used
|
Prints the synopsis and a list of the most commonly used
|
||||||
commands. If the option '--all' or '-a' is given then all
|
commands. If the option '--all' or '-a' is given then all
|
||||||
available commands are printed. If a git command is named this
|
available commands are printed. If a Git command is named this
|
||||||
option will bring up the manual page for that command.
|
option will bring up the manual page for that command.
|
||||||
+
|
+
|
||||||
Other options are available to control how the manual page is
|
Other options are available to control how the manual page is
|
||||||
@ -375,22 +375,22 @@ help ...`.
|
|||||||
'git config' (subkeys separated by dots).
|
'git config' (subkeys separated by dots).
|
||||||
|
|
||||||
--exec-path[=<path>]::
|
--exec-path[=<path>]::
|
||||||
Path to wherever your core git programs are installed.
|
Path to wherever your core Git programs are installed.
|
||||||
This can also be controlled by setting the GIT_EXEC_PATH
|
This can also be controlled by setting the GIT_EXEC_PATH
|
||||||
environment variable. If no path is given, 'git' will print
|
environment variable. If no path is given, 'git' will print
|
||||||
the current setting and then exit.
|
the current setting and then exit.
|
||||||
|
|
||||||
--html-path::
|
--html-path::
|
||||||
Print the path, without trailing slash, where git's HTML
|
Print the path, without trailing slash, where Git's HTML
|
||||||
documentation is installed and exit.
|
documentation is installed and exit.
|
||||||
|
|
||||||
--man-path::
|
--man-path::
|
||||||
Print the manpath (see `man(1)`) for the man pages for
|
Print the manpath (see `man(1)`) for the man pages for
|
||||||
this version of git and exit.
|
this version of Git and exit.
|
||||||
|
|
||||||
--info-path::
|
--info-path::
|
||||||
Print the path where the Info files documenting this
|
Print the path where the Info files documenting this
|
||||||
version of git are installed and exit.
|
version of Git are installed and exit.
|
||||||
|
|
||||||
-p::
|
-p::
|
||||||
--paginate::
|
--paginate::
|
||||||
@ -400,7 +400,7 @@ help ...`.
|
|||||||
below).
|
below).
|
||||||
|
|
||||||
--no-pager::
|
--no-pager::
|
||||||
Do not pipe git output into a pager.
|
Do not pipe Git output into a pager.
|
||||||
|
|
||||||
--git-dir=<path>::
|
--git-dir=<path>::
|
||||||
Set the path to the repository. This can also be controlled by
|
Set the path to the repository. This can also be controlled by
|
||||||
@ -416,7 +416,7 @@ help ...`.
|
|||||||
more detailed discussion).
|
more detailed discussion).
|
||||||
|
|
||||||
--namespace=<path>::
|
--namespace=<path>::
|
||||||
Set the git namespace. See linkgit:gitnamespaces[7] for more
|
Set the Git namespace. See linkgit:gitnamespaces[7] for more
|
||||||
details. Equivalent to setting the `GIT_NAMESPACE` environment
|
details. Equivalent to setting the `GIT_NAMESPACE` environment
|
||||||
variable.
|
variable.
|
||||||
|
|
||||||
@ -426,7 +426,7 @@ help ...`.
|
|||||||
directory.
|
directory.
|
||||||
|
|
||||||
--no-replace-objects::
|
--no-replace-objects::
|
||||||
Do not use replacement refs to replace git objects. See
|
Do not use replacement refs to replace Git objects. See
|
||||||
linkgit:git-replace[1] for more information.
|
linkgit:git-replace[1] for more information.
|
||||||
|
|
||||||
--literal-pathspecs::
|
--literal-pathspecs::
|
||||||
@ -438,7 +438,7 @@ help ...`.
|
|||||||
GIT COMMANDS
|
GIT COMMANDS
|
||||||
------------
|
------------
|
||||||
|
|
||||||
We divide git into high level ("porcelain") commands and low level
|
We divide Git into high level ("porcelain") commands and low level
|
||||||
("plumbing") commands.
|
("plumbing") commands.
|
||||||
|
|
||||||
High-level commands (porcelain)
|
High-level commands (porcelain)
|
||||||
@ -475,7 +475,7 @@ include::cmds-foreignscminterface.txt[]
|
|||||||
Low-level commands (plumbing)
|
Low-level commands (plumbing)
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
Although git includes its
|
Although Git includes its
|
||||||
own porcelain layer, its low-level commands are sufficient to support
|
own porcelain layer, its low-level commands are sufficient to support
|
||||||
development of alternative porcelains. Developers of such porcelains
|
development of alternative porcelains. Developers of such porcelains
|
||||||
might start by reading about linkgit:git-update-index[1] and
|
might start by reading about linkgit:git-update-index[1] and
|
||||||
@ -596,7 +596,7 @@ Identifier Terminology
|
|||||||
|
|
||||||
Symbolic Identifiers
|
Symbolic Identifiers
|
||||||
--------------------
|
--------------------
|
||||||
Any git command accepting any <object> can also use the following
|
Any Git command accepting any <object> can also use the following
|
||||||
symbolic notation:
|
symbolic notation:
|
||||||
|
|
||||||
HEAD::
|
HEAD::
|
||||||
@ -632,13 +632,13 @@ Please see linkgit:gitglossary[7].
|
|||||||
|
|
||||||
Environment Variables
|
Environment Variables
|
||||||
---------------------
|
---------------------
|
||||||
Various git commands use the following environment variables:
|
Various Git commands use the following environment variables:
|
||||||
|
|
||||||
The git Repository
|
The Git Repository
|
||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
These environment variables apply to 'all' core git commands. Nb: it
|
These environment variables apply to 'all' core Git commands. Nb: it
|
||||||
is worth noting that they may be used/overridden by SCMS sitting above
|
is worth noting that they may be used/overridden by SCMS sitting above
|
||||||
git so take care if using Cogito etc.
|
Git so take care if using Cogito etc.
|
||||||
|
|
||||||
'GIT_INDEX_FILE'::
|
'GIT_INDEX_FILE'::
|
||||||
This environment allows the specification of an alternate
|
This environment allows the specification of an alternate
|
||||||
@ -652,10 +652,10 @@ git so take care if using Cogito etc.
|
|||||||
directory is used.
|
directory is used.
|
||||||
|
|
||||||
'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
|
'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
|
||||||
Due to the immutable nature of git objects, old objects can be
|
Due to the immutable nature of Git objects, old objects can be
|
||||||
archived into shared, read-only directories. This variable
|
archived into shared, read-only directories. This variable
|
||||||
specifies a ":" separated (on Windows ";" separated) list
|
specifies a ":" separated (on Windows ";" separated) list
|
||||||
of git object directories which can be used to search for git
|
of Git object directories which can be used to search for Git
|
||||||
objects. New objects will not be written to these directories.
|
objects. New objects will not be written to these directories.
|
||||||
|
|
||||||
'GIT_DIR'::
|
'GIT_DIR'::
|
||||||
@ -672,12 +672,12 @@ git so take care if using Cogito etc.
|
|||||||
option and the core.worktree configuration variable.
|
option and the core.worktree configuration variable.
|
||||||
|
|
||||||
'GIT_NAMESPACE'::
|
'GIT_NAMESPACE'::
|
||||||
Set the git namespace; see linkgit:gitnamespaces[7] for details.
|
Set the Git namespace; see linkgit:gitnamespaces[7] for details.
|
||||||
The '--namespace' command-line option also sets this value.
|
The '--namespace' command-line option also sets this value.
|
||||||
|
|
||||||
'GIT_CEILING_DIRECTORIES'::
|
'GIT_CEILING_DIRECTORIES'::
|
||||||
This should be a colon-separated list of absolute paths.
|
This should be a colon-separated list of absolute paths.
|
||||||
If set, it is a list of directories that git should not chdir
|
If set, it is a list of directories that Git should not chdir
|
||||||
up into while looking for a repository directory.
|
up into while looking for a repository directory.
|
||||||
It will not exclude the current working directory or
|
It will not exclude the current working directory or
|
||||||
a GIT_DIR set on the command line or in the environment.
|
a GIT_DIR set on the command line or in the environment.
|
||||||
@ -685,15 +685,15 @@ git so take care if using Cogito etc.
|
|||||||
|
|
||||||
'GIT_DISCOVERY_ACROSS_FILESYSTEM'::
|
'GIT_DISCOVERY_ACROSS_FILESYSTEM'::
|
||||||
When run in a directory that does not have ".git" repository
|
When run in a directory that does not have ".git" repository
|
||||||
directory, git tries to find such a directory in the parent
|
directory, Git tries to find such a directory in the parent
|
||||||
directories to find the top of the working tree, but by default it
|
directories to find the top of the working tree, but by default it
|
||||||
does not cross filesystem boundaries. This environment variable
|
does not cross filesystem boundaries. This environment variable
|
||||||
can be set to true to tell git not to stop at filesystem
|
can be set to true to tell Git not to stop at filesystem
|
||||||
boundaries. Like 'GIT_CEILING_DIRECTORIES', this will not affect
|
boundaries. Like 'GIT_CEILING_DIRECTORIES', this will not affect
|
||||||
an explicit repository directory set via 'GIT_DIR' or on the
|
an explicit repository directory set via 'GIT_DIR' or on the
|
||||||
command line.
|
command line.
|
||||||
|
|
||||||
git Commits
|
Git Commits
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
'GIT_AUTHOR_NAME'::
|
'GIT_AUTHOR_NAME'::
|
||||||
'GIT_AUTHOR_EMAIL'::
|
'GIT_AUTHOR_EMAIL'::
|
||||||
@ -704,13 +704,13 @@ git Commits
|
|||||||
'EMAIL'::
|
'EMAIL'::
|
||||||
see linkgit:git-commit-tree[1]
|
see linkgit:git-commit-tree[1]
|
||||||
|
|
||||||
git Diffs
|
Git Diffs
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
'GIT_DIFF_OPTS'::
|
'GIT_DIFF_OPTS'::
|
||||||
Only valid setting is "--unified=??" or "-u??" to set the
|
Only valid setting is "--unified=??" or "-u??" to set the
|
||||||
number of context lines shown when a unified diff is created.
|
number of context lines shown when a unified diff is created.
|
||||||
This takes precedence over any "-U" or "--unified" option
|
This takes precedence over any "-U" or "--unified" option
|
||||||
value passed on the git diff command line.
|
value passed on the Git diff command line.
|
||||||
|
|
||||||
'GIT_EXTERNAL_DIFF'::
|
'GIT_EXTERNAL_DIFF'::
|
||||||
When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
|
When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
|
||||||
@ -745,13 +745,13 @@ other
|
|||||||
|
|
||||||
'GIT_PAGER'::
|
'GIT_PAGER'::
|
||||||
This environment variable overrides `$PAGER`. If it is set
|
This environment variable overrides `$PAGER`. If it is set
|
||||||
to an empty string or to the value "cat", git will not launch
|
to an empty string or to the value "cat", Git will not launch
|
||||||
a pager. See also the `core.pager` option in
|
a pager. See also the `core.pager` option in
|
||||||
linkgit:git-config[1].
|
linkgit:git-config[1].
|
||||||
|
|
||||||
'GIT_EDITOR'::
|
'GIT_EDITOR'::
|
||||||
This environment variable overrides `$EDITOR` and `$VISUAL`.
|
This environment variable overrides `$EDITOR` and `$VISUAL`.
|
||||||
It is used by several git commands when, on interactive mode,
|
It is used by several Git commands when, on interactive mode,
|
||||||
an editor is to be launched. See also linkgit:git-var[1]
|
an editor is to be launched. See also linkgit:git-var[1]
|
||||||
and the `core.editor` option in linkgit:git-config[1].
|
and the `core.editor` option in linkgit:git-config[1].
|
||||||
|
|
||||||
@ -772,7 +772,7 @@ personal `.ssh/config` file. Please consult your ssh documentation
|
|||||||
for further details.
|
for further details.
|
||||||
|
|
||||||
'GIT_ASKPASS'::
|
'GIT_ASKPASS'::
|
||||||
If this environment variable is set, then git commands which need to
|
If this environment variable is set, then Git commands which need to
|
||||||
acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
|
acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
|
||||||
will call this program with a suitable prompt as command line argument
|
will call this program with a suitable prompt as command line argument
|
||||||
and read the password from its STDOUT. See also the 'core.askpass'
|
and read the password from its STDOUT. See also the 'core.askpass'
|
||||||
@ -793,30 +793,30 @@ for further details.
|
|||||||
after each commit-oriented record have been flushed. If this
|
after each commit-oriented record have been flushed. If this
|
||||||
variable is set to "0", the output of these commands will be done
|
variable is set to "0", the output of these commands will be done
|
||||||
using completely buffered I/O. If this environment variable is
|
using completely buffered I/O. If this environment variable is
|
||||||
not set, git will choose buffered or record-oriented flushing
|
not set, Git will choose buffered or record-oriented flushing
|
||||||
based on whether stdout appears to be redirected to a file or not.
|
based on whether stdout appears to be redirected to a file or not.
|
||||||
|
|
||||||
'GIT_TRACE'::
|
'GIT_TRACE'::
|
||||||
If this variable is set to "1", "2" or "true" (comparison
|
If this variable is set to "1", "2" or "true" (comparison
|
||||||
is case insensitive), git will print `trace:` messages on
|
is case insensitive), Git will print `trace:` messages on
|
||||||
stderr telling about alias expansion, built-in command
|
stderr telling about alias expansion, built-in command
|
||||||
execution and external command execution.
|
execution and external command execution.
|
||||||
If this variable is set to an integer value greater than 1
|
If this variable is set to an integer value greater than 1
|
||||||
and lower than 10 (strictly) then git will interpret this
|
and lower than 10 (strictly) then Git will interpret this
|
||||||
value as an open file descriptor and will try to write the
|
value as an open file descriptor and will try to write the
|
||||||
trace messages into this file descriptor.
|
trace messages into this file descriptor.
|
||||||
Alternatively, if this variable is set to an absolute path
|
Alternatively, if this variable is set to an absolute path
|
||||||
(starting with a '/' character), git will interpret this
|
(starting with a '/' character), Git will interpret this
|
||||||
as a file path and will try to write the trace messages
|
as a file path and will try to write the trace messages
|
||||||
into it.
|
into it.
|
||||||
|
|
||||||
GIT_LITERAL_PATHSPECS::
|
GIT_LITERAL_PATHSPECS::
|
||||||
Setting this variable to `1` will cause git to treat all
|
Setting this variable to `1` will cause Git to treat all
|
||||||
pathspecs literally, rather than as glob patterns. For example,
|
pathspecs literally, rather than as glob patterns. For example,
|
||||||
running `GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search
|
running `GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search
|
||||||
for commits that touch the path `*.c`, not any paths that the
|
for commits that touch the path `*.c`, not any paths that the
|
||||||
glob `*.c` matches. You might want this if you are feeding
|
glob `*.c` matches. You might want this if you are feeding
|
||||||
literal paths to git (e.g., paths previously given to you by
|
literal paths to Git (e.g., paths previously given to you by
|
||||||
`git ls-tree`, `--raw` diff output, etc).
|
`git ls-tree`, `--raw` diff output, etc).
|
||||||
|
|
||||||
|
|
||||||
@ -824,10 +824,10 @@ Discussion[[Discussion]]
|
|||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
More detail on the following is available from the
|
More detail on the following is available from the
|
||||||
link:user-manual.html#git-concepts[git concepts chapter of the
|
link:user-manual.html#git-concepts[Git concepts chapter of the
|
||||||
user-manual] and linkgit:gitcore-tutorial[7].
|
user-manual] and linkgit:gitcore-tutorial[7].
|
||||||
|
|
||||||
A git project normally consists of a working directory with a ".git"
|
A Git project normally consists of a working directory with a ".git"
|
||||||
subdirectory at the top level. The .git directory contains, among other
|
subdirectory at the top level. The .git directory contains, among other
|
||||||
things, a compressed object database representing the complete history
|
things, a compressed object database representing the complete history
|
||||||
of the project, an "index" file which links that history to the current
|
of the project, an "index" file which links that history to the current
|
||||||
@ -877,12 +877,12 @@ FURTHER DOCUMENTATION
|
|||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
See the references in the "description" section to get started
|
See the references in the "description" section to get started
|
||||||
using git. The following is probably more detail than necessary
|
using Git. The following is probably more detail than necessary
|
||||||
for a first-time user.
|
for a first-time user.
|
||||||
|
|
||||||
The link:user-manual.html#git-concepts[git concepts chapter of the
|
The link:user-manual.html#git-concepts[Git concepts chapter of the
|
||||||
user-manual] and linkgit:gitcore-tutorial[7] both provide
|
user-manual] and linkgit:gitcore-tutorial[7] both provide
|
||||||
introductions to the underlying git architecture.
|
introductions to the underlying Git architecture.
|
||||||
|
|
||||||
See linkgit:gitworkflows[7] for an overview of recommended workflows.
|
See linkgit:gitworkflows[7] for an overview of recommended workflows.
|
||||||
|
|
||||||
@ -890,7 +890,7 @@ See also the link:howto-index.html[howto] documents for some useful
|
|||||||
examples.
|
examples.
|
||||||
|
|
||||||
The internals are documented in the
|
The internals are documented in the
|
||||||
link:technical/api-index.html[GIT API documentation].
|
link:technical/api-index.html[Git API documentation].
|
||||||
|
|
||||||
Users migrating from CVS may also want to
|
Users migrating from CVS may also want to
|
||||||
read linkgit:gitcvs-migration[7].
|
read linkgit:gitcvs-migration[7].
|
||||||
@ -899,7 +899,7 @@ read linkgit:gitcvs-migration[7].
|
|||||||
Authors
|
Authors
|
||||||
-------
|
-------
|
||||||
Git was started by Linus Torvalds, and is currently maintained by Junio
|
Git was started by Linus Torvalds, and is currently maintained by Junio
|
||||||
C Hamano. Numerous contributions have come from the git mailing list
|
C Hamano. Numerous contributions have come from the Git mailing list
|
||||||
<git@vger.kernel.org>. http://www.ohloh.net/p/git/contributors/summary
|
<git@vger.kernel.org>. http://www.ohloh.net/p/git/contributors/summary
|
||||||
gives you a more complete list of contributors.
|
gives you a more complete list of contributors.
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ attribute. The rules how the pattern matches paths are the
|
|||||||
same as in `.gitignore` files; see linkgit:gitignore[5].
|
same as in `.gitignore` files; see linkgit:gitignore[5].
|
||||||
Unlike `.gitignore`, negative patterns are forbidden.
|
Unlike `.gitignore`, negative patterns are forbidden.
|
||||||
|
|
||||||
When deciding what attributes are assigned to a path, git
|
When deciding what attributes are assigned to a path, Git
|
||||||
consults `$GIT_DIR/info/attributes` file (which has the highest
|
consults `$GIT_DIR/info/attributes` file (which has the highest
|
||||||
precedence), `.gitattributes` file in the same directory as the
|
precedence), `.gitattributes` file in the same directory as the
|
||||||
path in question, and its parent directories up to the toplevel of the
|
path in question, and its parent directories up to the toplevel of the
|
||||||
@ -94,7 +94,7 @@ the name of the attribute prefixed with an exclamation point `!`.
|
|||||||
EFFECTS
|
EFFECTS
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Certain operations by git can be influenced by assigning
|
Certain operations by Git can be influenced by assigning
|
||||||
particular attributes to a path. Currently, the following
|
particular attributes to a path. Currently, the following
|
||||||
operations are attributes-aware.
|
operations are attributes-aware.
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ Checking-out and checking-in
|
|||||||
These attributes affect how the contents stored in the
|
These attributes affect how the contents stored in the
|
||||||
repository are copied to the working tree files when commands
|
repository are copied to the working tree files when commands
|
||||||
such as 'git checkout' and 'git merge' run. They also affect how
|
such as 'git checkout' and 'git merge' run. They also affect how
|
||||||
git stores the contents you prepare in the working tree in the
|
Git stores the contents you prepare in the working tree in the
|
||||||
repository upon 'git add' and 'git commit'.
|
repository upon 'git add' and 'git commit'.
|
||||||
|
|
||||||
`text`
|
`text`
|
||||||
@ -124,22 +124,22 @@ Set::
|
|||||||
|
|
||||||
Unset::
|
Unset::
|
||||||
|
|
||||||
Unsetting the `text` attribute on a path tells git not to
|
Unsetting the `text` attribute on a path tells Git not to
|
||||||
attempt any end-of-line conversion upon checkin or checkout.
|
attempt any end-of-line conversion upon checkin or checkout.
|
||||||
|
|
||||||
Set to string value "auto"::
|
Set to string value "auto"::
|
||||||
|
|
||||||
When `text` is set to "auto", the path is marked for automatic
|
When `text` is set to "auto", the path is marked for automatic
|
||||||
end-of-line normalization. If git decides that the content is
|
end-of-line normalization. If Git decides that the content is
|
||||||
text, its line endings are normalized to LF on checkin.
|
text, its line endings are normalized to LF on checkin.
|
||||||
|
|
||||||
Unspecified::
|
Unspecified::
|
||||||
|
|
||||||
If the `text` attribute is unspecified, git uses the
|
If the `text` attribute is unspecified, Git uses the
|
||||||
`core.autocrlf` configuration variable to determine if the
|
`core.autocrlf` configuration variable to determine if the
|
||||||
file should be converted.
|
file should be converted.
|
||||||
|
|
||||||
Any other value causes git to act as if `text` has been left
|
Any other value causes Git to act as if `text` has been left
|
||||||
unspecified.
|
unspecified.
|
||||||
|
|
||||||
`eol`
|
`eol`
|
||||||
@ -151,13 +151,13 @@ content checks, effectively setting the `text` attribute.
|
|||||||
|
|
||||||
Set to string value "crlf"::
|
Set to string value "crlf"::
|
||||||
|
|
||||||
This setting forces git to normalize line endings for this
|
This setting forces Git to normalize line endings for this
|
||||||
file on checkin and convert them to CRLF when the file is
|
file on checkin and convert them to CRLF when the file is
|
||||||
checked out.
|
checked out.
|
||||||
|
|
||||||
Set to string value "lf"::
|
Set to string value "lf"::
|
||||||
|
|
||||||
This setting forces git to normalize line endings to LF on
|
This setting forces Git to normalize line endings to LF on
|
||||||
checkin and prevents conversion to CRLF when the file is
|
checkin and prevents conversion to CRLF when the file is
|
||||||
checked out.
|
checked out.
|
||||||
|
|
||||||
@ -176,11 +176,11 @@ crlf=input eol=lf
|
|||||||
End-of-line conversion
|
End-of-line conversion
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
While git normally leaves file contents alone, it can be configured to
|
While Git normally leaves file contents alone, it can be configured to
|
||||||
normalize line endings to LF in the repository and, optionally, to
|
normalize line endings to LF in the repository and, optionally, to
|
||||||
convert them to CRLF when files are checked out.
|
convert them to CRLF when files are checked out.
|
||||||
|
|
||||||
Here is an example that will make git normalize .txt, .vcproj and .sh
|
Here is an example that will make Git normalize .txt, .vcproj and .sh
|
||||||
files, ensure that .vcproj files have CRLF and .sh files have LF in
|
files, ensure that .vcproj files have CRLF and .sh files have LF in
|
||||||
the working directory, and prevent .jpg files from being normalized
|
the working directory, and prevent .jpg files from being normalized
|
||||||
regardless of their content.
|
regardless of their content.
|
||||||
@ -194,7 +194,7 @@ regardless of their content.
|
|||||||
|
|
||||||
Other source code management systems normalize all text files in their
|
Other source code management systems normalize all text files in their
|
||||||
repositories, and there are two ways to enable similar automatic
|
repositories, and there are two ways to enable similar automatic
|
||||||
normalization in git.
|
normalization in Git.
|
||||||
|
|
||||||
If you simply want to have CRLF line endings in your working directory
|
If you simply want to have CRLF line endings in your working directory
|
||||||
regardless of the repository you are working with, you can set the
|
regardless of the repository you are working with, you can set the
|
||||||
@ -219,9 +219,9 @@ attribute to "auto" for _all_ files.
|
|||||||
* text=auto
|
* text=auto
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
This ensures that all files that git considers to be text will have
|
This ensures that all files that Git considers to be text will have
|
||||||
normalized (LF) line endings in the repository. The `core.eol`
|
normalized (LF) line endings in the repository. The `core.eol`
|
||||||
configuration variable controls which line endings git will use for
|
configuration variable controls which line endings Git will use for
|
||||||
normalized files in your working directory; the default is to use the
|
normalized files in your working directory; the default is to use the
|
||||||
native line ending for your platform, or CRLF if `core.autocrlf` is
|
native line ending for your platform, or CRLF if `core.autocrlf` is
|
||||||
set.
|
set.
|
||||||
@ -234,7 +234,7 @@ directory:
|
|||||||
|
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
$ echo "* text=auto" >>.gitattributes
|
$ echo "* text=auto" >>.gitattributes
|
||||||
$ rm .git/index # Remove the index to force git to
|
$ rm .git/index # Remove the index to force Git to
|
||||||
$ git reset # re-scan the working directory
|
$ git reset # re-scan the working directory
|
||||||
$ git status # Show files that will be normalized
|
$ git status # Show files that will be normalized
|
||||||
$ git add -u
|
$ git add -u
|
||||||
@ -249,17 +249,17 @@ unset their `text` attribute before running 'git add -u'.
|
|||||||
manual.pdf -text
|
manual.pdf -text
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
Conversely, text files that git does not detect can have normalization
|
Conversely, text files that Git does not detect can have normalization
|
||||||
enabled manually.
|
enabled manually.
|
||||||
|
|
||||||
------------------------
|
------------------------
|
||||||
weirdchars.txt text
|
weirdchars.txt text
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
If `core.safecrlf` is set to "true" or "warn", git verifies if
|
If `core.safecrlf` is set to "true" or "warn", Git verifies if
|
||||||
the conversion is reversible for the current setting of
|
the conversion is reversible for the current setting of
|
||||||
`core.autocrlf`. For "true", git rejects irreversible
|
`core.autocrlf`. For "true", Git rejects irreversible
|
||||||
conversions; for "warn", git only prints a warning but accepts
|
conversions; for "warn", Git only prints a warning but accepts
|
||||||
an irreversible conversion. The safety triggers to prevent such
|
an irreversible conversion. The safety triggers to prevent such
|
||||||
a conversion done to the files in the work tree, but there are a
|
a conversion done to the files in the work tree, but there are a
|
||||||
few exceptions. Even though...
|
few exceptions. Even though...
|
||||||
@ -280,7 +280,7 @@ few exceptions. Even though...
|
|||||||
`ident`
|
`ident`
|
||||||
^^^^^^^
|
^^^^^^^
|
||||||
|
|
||||||
When the attribute `ident` is set for a path, git replaces
|
When the attribute `ident` is set for a path, Git replaces
|
||||||
`$Id$` in the blob object with `$Id:`, followed by the
|
`$Id$` in the blob object with `$Id:`, followed by the
|
||||||
40-character hexadecimal blob object name, followed by a dollar
|
40-character hexadecimal blob object name, followed by a dollar
|
||||||
sign `$` upon checkout. Any byte sequence that begins with
|
sign `$` upon checkout. Any byte sequence that begins with
|
||||||
@ -311,7 +311,7 @@ the appropriate filter program, the project should still be usable.
|
|||||||
|
|
||||||
Another use of the content filtering is to store the content that cannot
|
Another use of the content filtering is to store the content that cannot
|
||||||
be directly used in the repository (e.g. a UUID that refers to the true
|
be directly used in the repository (e.g. a UUID that refers to the true
|
||||||
content stored outside git, or an encrypted content) and turn it into a
|
content stored outside Git, or an encrypted content) and turn it into a
|
||||||
usable form upon checkout (e.g. download the external content, or decrypt
|
usable form upon checkout (e.g. download the external content, or decrypt
|
||||||
the encrypted content).
|
the encrypted content).
|
||||||
|
|
||||||
@ -397,7 +397,7 @@ clean/smudge filter or text/eol/ident attributes, merging anything
|
|||||||
where the attribute is not in place would normally cause merge
|
where the attribute is not in place would normally cause merge
|
||||||
conflicts.
|
conflicts.
|
||||||
|
|
||||||
To prevent these unnecessary merge conflicts, git can be told to run a
|
To prevent these unnecessary merge conflicts, Git can be told to run a
|
||||||
virtual check-out and check-in of all three stages of a file when
|
virtual check-out and check-in of all three stages of a file when
|
||||||
resolving a three-way merge by setting the `merge.renormalize`
|
resolving a three-way merge by setting the `merge.renormalize`
|
||||||
configuration variable. This prevents changes caused by check-in
|
configuration variable. This prevents changes caused by check-in
|
||||||
@ -417,11 +417,11 @@ Generating diff text
|
|||||||
`diff`
|
`diff`
|
||||||
^^^^^^
|
^^^^^^
|
||||||
|
|
||||||
The attribute `diff` affects how 'git' generates diffs for particular
|
The attribute `diff` affects how Git generates diffs for particular
|
||||||
files. It can tell git whether to generate a textual patch for the path
|
files. It can tell Git whether to generate a textual patch for the path
|
||||||
or to treat the path as a binary file. It can also affect what line is
|
or to treat the path as a binary file. It can also affect what line is
|
||||||
shown on the hunk header `@@ -k,l +n,m @@` line, tell git to use an
|
shown on the hunk header `@@ -k,l +n,m @@` line, tell Git to use an
|
||||||
external command to generate the diff, or ask git to convert binary
|
external command to generate the diff, or ask Git to convert binary
|
||||||
files to a text format before generating the diff.
|
files to a text format before generating the diff.
|
||||||
|
|
||||||
Set::
|
Set::
|
||||||
@ -449,7 +449,7 @@ String::
|
|||||||
specify one or more options, as described in the following
|
specify one or more options, as described in the following
|
||||||
section. The options for the diff driver "foo" are defined
|
section. The options for the diff driver "foo" are defined
|
||||||
by the configuration variables in the "diff.foo" section of the
|
by the configuration variables in the "diff.foo" section of the
|
||||||
git config file.
|
Git config file.
|
||||||
|
|
||||||
|
|
||||||
Defining an external diff driver
|
Defining an external diff driver
|
||||||
@ -467,7 +467,7 @@ To define an external diff driver `jcdiff`, add a section to your
|
|||||||
command = j-c-diff
|
command = j-c-diff
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
When git needs to show you a diff for the path with `diff`
|
When Git needs to show you a diff for the path with `diff`
|
||||||
attribute set to `jcdiff`, it calls the command you specified
|
attribute set to `jcdiff`, it calls the command you specified
|
||||||
with the above configuration, i.e. `j-c-diff`, with 7
|
with the above configuration, i.e. `j-c-diff`, with 7
|
||||||
parameters, just like `GIT_EXTERNAL_DIFF` program is called.
|
parameters, just like `GIT_EXTERNAL_DIFF` program is called.
|
||||||
@ -606,7 +606,7 @@ should generate it separately and send it as a comment _in
|
|||||||
addition to_ the usual binary diff that you might send.
|
addition to_ the usual binary diff that you might send.
|
||||||
|
|
||||||
Because text conversion can be slow, especially when doing a
|
Because text conversion can be slow, especially when doing a
|
||||||
large number of them with `git log -p`, git provides a mechanism
|
large number of them with `git log -p`, Git provides a mechanism
|
||||||
to cache the output and use it in future diffs. To enable
|
to cache the output and use it in future diffs. To enable
|
||||||
caching, set the "cachetextconv" variable in your diff driver's
|
caching, set the "cachetextconv" variable in your diff driver's
|
||||||
config. For example:
|
config. For example:
|
||||||
@ -619,7 +619,7 @@ config. For example:
|
|||||||
|
|
||||||
This will cache the result of running "exif" on each blob
|
This will cache the result of running "exif" on each blob
|
||||||
indefinitely. If you change the textconv config variable for a
|
indefinitely. If you change the textconv config variable for a
|
||||||
diff driver, git will automatically invalidate the cache entries
|
diff driver, Git will automatically invalidate the cache entries
|
||||||
and re-run the textconv filter. If you want to invalidate the
|
and re-run the textconv filter. If you want to invalidate the
|
||||||
cache manually (e.g., because your version of "exif" was updated
|
cache manually (e.g., because your version of "exif" was updated
|
||||||
and now produces better output), you can remove the cache
|
and now produces better output), you can remove the cache
|
||||||
@ -640,7 +640,7 @@ output to resemble unified diff. You are free to locate and report
|
|||||||
changes in the most appropriate way for your data format.
|
changes in the most appropriate way for your data format.
|
||||||
|
|
||||||
A textconv, by comparison, is much more limiting. You provide a
|
A textconv, by comparison, is much more limiting. You provide a
|
||||||
transformation of the data into a line-oriented text format, and git
|
transformation of the data into a line-oriented text format, and Git
|
||||||
uses its regular diff tools to generate the output. There are several
|
uses its regular diff tools to generate the output. There are several
|
||||||
advantages to choosing this method:
|
advantages to choosing this method:
|
||||||
|
|
||||||
@ -650,7 +650,7 @@ advantages to choosing this method:
|
|||||||
odt2txt).
|
odt2txt).
|
||||||
|
|
||||||
2. Git diff features. By performing only the transformation step
|
2. Git diff features. By performing only the transformation step
|
||||||
yourself, you can still utilize many of git's diff features,
|
yourself, you can still utilize many of Git's diff features,
|
||||||
including colorization, word-diff, and combined diffs for merges.
|
including colorization, word-diff, and combined diffs for merges.
|
||||||
|
|
||||||
3. Caching. Textconv caching can speed up repeated diffs, such as those
|
3. Caching. Textconv caching can speed up repeated diffs, such as those
|
||||||
@ -675,7 +675,7 @@ attribute in the `.gitattributes` file:
|
|||||||
*.ps -diff
|
*.ps -diff
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
This will cause git to generate `Binary files differ` (or a binary
|
This will cause Git to generate `Binary files differ` (or a binary
|
||||||
patch, if binary patches are enabled) instead of a regular diff.
|
patch, if binary patches are enabled) instead of a regular diff.
|
||||||
|
|
||||||
However, one may also want to specify other diff driver attributes. For
|
However, one may also want to specify other diff driver attributes. For
|
||||||
@ -831,7 +831,7 @@ control per path.
|
|||||||
|
|
||||||
Set::
|
Set::
|
||||||
|
|
||||||
Notice all types of potential whitespace errors known to git.
|
Notice all types of potential whitespace errors known to Git.
|
||||||
The tab width is taken from the value of the `core.whitespace`
|
The tab width is taken from the value of the `core.whitespace`
|
||||||
configuration variable.
|
configuration variable.
|
||||||
|
|
||||||
@ -863,7 +863,7 @@ archive files.
|
|||||||
`export-subst`
|
`export-subst`
|
||||||
^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
If the attribute `export-subst` is set for a file then git will expand
|
If the attribute `export-subst` is set for a file then Git will expand
|
||||||
several placeholders when adding this file to an archive. The
|
several placeholders when adding this file to an archive. The
|
||||||
expansion depends on the availability of a commit ID, i.e., if
|
expansion depends on the availability of a commit ID, i.e., if
|
||||||
linkgit:git-archive[1] has been given a tree instead of a commit or a
|
linkgit:git-archive[1] has been given a tree instead of a commit or a
|
||||||
@ -961,7 +961,7 @@ abc -foo -bar
|
|||||||
the attributes given to path `t/abc` are computed as follows:
|
the attributes given to path `t/abc` are computed as follows:
|
||||||
|
|
||||||
1. By examining `t/.gitattributes` (which is in the same
|
1. By examining `t/.gitattributes` (which is in the same
|
||||||
directory as the path in question), git finds that the first
|
directory as the path in question), Git finds that the first
|
||||||
line matches. `merge` attribute is set. It also finds that
|
line matches. `merge` attribute is set. It also finds that
|
||||||
the second line matches, and attributes `foo` and `bar`
|
the second line matches, and attributes `foo` and `bar`
|
||||||
are unset.
|
are unset.
|
||||||
|
@ -3,7 +3,7 @@ gitcli(7)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
gitcli - git command line interface and conventions
|
gitcli - Git command line interface and conventions
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -13,7 +13,7 @@ gitcli
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
This manual describes the convention used throughout git CLI.
|
This manual describes the convention used throughout Git CLI.
|
||||||
|
|
||||||
Many commands take revisions (most often "commits", but sometimes
|
Many commands take revisions (most often "commits", but sometimes
|
||||||
"tree-ish", depending on the context and command) and paths as their
|
"tree-ish", depending on the context and command) and paths as their
|
||||||
@ -32,7 +32,7 @@ arguments. Here are the rules:
|
|||||||
between the HEAD commit and the work tree as a whole". You can say
|
between the HEAD commit and the work tree as a whole". You can say
|
||||||
`git diff HEAD --` to ask for the latter.
|
`git diff HEAD --` to ask for the latter.
|
||||||
|
|
||||||
* Without disambiguating `--`, git makes a reasonable guess, but errors
|
* Without disambiguating `--`, Git makes a reasonable guess, but errors
|
||||||
out and asking you to disambiguate when ambiguous. E.g. if you have a
|
out and asking you to disambiguate when ambiguous. E.g. if you have a
|
||||||
file called HEAD in your work tree, `git diff HEAD` is ambiguous, and
|
file called HEAD in your work tree, `git diff HEAD` is ambiguous, and
|
||||||
you have to say either `git diff HEAD --` or `git diff -- HEAD` to
|
you have to say either `git diff HEAD --` or `git diff -- HEAD` to
|
||||||
@ -60,9 +60,9 @@ see `hello.c` in your working tree with the former, but with the latter
|
|||||||
you will.
|
you will.
|
||||||
|
|
||||||
Here are the rules regarding the "flags" that you should follow when you are
|
Here are the rules regarding the "flags" that you should follow when you are
|
||||||
scripting git:
|
scripting Git:
|
||||||
|
|
||||||
* it's preferred to use the non dashed form of git commands, which means that
|
* it's preferred to use the non dashed form of Git commands, which means that
|
||||||
you should prefer `git foo` to `git-foo`.
|
you should prefer `git foo` to `git-foo`.
|
||||||
|
|
||||||
* splitting short options to separate words (prefer `git foo -a -b`
|
* splitting short options to separate words (prefer `git foo -a -b`
|
||||||
@ -90,7 +90,7 @@ scripting git:
|
|||||||
|
|
||||||
ENHANCED OPTION PARSER
|
ENHANCED OPTION PARSER
|
||||||
----------------------
|
----------------------
|
||||||
From the git 1.5.4 series and further, many git commands (not all of them at the
|
From the Git 1.5.4 series and further, many Git commands (not all of them at the
|
||||||
time of the writing though) come with an enhanced option parser.
|
time of the writing though) come with an enhanced option parser.
|
||||||
|
|
||||||
Here is a list of the facilities provided by this option parser.
|
Here is a list of the facilities provided by this option parser.
|
||||||
@ -117,7 +117,7 @@ usage: git describe [options] <committish>*
|
|||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
--help-all::
|
--help-all::
|
||||||
Some git commands take options that are only used for plumbing or that
|
Some Git commands take options that are only used for plumbing or that
|
||||||
are deprecated, and such options are hidden from the default usage. This
|
are deprecated, and such options are hidden from the default usage. This
|
||||||
option gives the full list of options.
|
option gives the full list of options.
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ gitcore-tutorial(7)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
gitcore-tutorial - A git core tutorial for developers
|
gitcore-tutorial - A Git core tutorial for developers
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -12,17 +12,17 @@ git *
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
This tutorial explains how to use the "core" git commands to set up and
|
This tutorial explains how to use the "core" Git commands to set up and
|
||||||
work with a git repository.
|
work with a Git repository.
|
||||||
|
|
||||||
If you just need to use git as a revision control system you may prefer
|
If you just need to use Git as a revision control system you may prefer
|
||||||
to start with "A Tutorial Introduction to GIT" (linkgit:gittutorial[7]) or
|
to start with "A Tutorial Introduction to Git" (linkgit:gittutorial[7]) or
|
||||||
link:user-manual.html[the GIT User Manual].
|
link:user-manual.html[the Git User Manual].
|
||||||
|
|
||||||
However, an understanding of these low-level tools can be helpful if
|
However, an understanding of these low-level tools can be helpful if
|
||||||
you want to understand git's internals.
|
you want to understand Git's internals.
|
||||||
|
|
||||||
The core git is often called "plumbing", with the prettier user
|
The core Git is often called "plumbing", with the prettier user
|
||||||
interfaces on top of it called "porcelain". You may not want to use the
|
interfaces on top of it called "porcelain". You may not want to use the
|
||||||
plumbing directly very often, but it can be good to know what the
|
plumbing directly very often, but it can be good to know what the
|
||||||
plumbing does for when the porcelain isn't flushing.
|
plumbing does for when the porcelain isn't flushing.
|
||||||
@ -40,19 +40,19 @@ Deeper technical details are often marked as Notes, which you can
|
|||||||
skip on your first reading.
|
skip on your first reading.
|
||||||
|
|
||||||
|
|
||||||
Creating a git repository
|
Creating a Git repository
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
Creating a new git repository couldn't be easier: all git repositories start
|
Creating a new Git repository couldn't be easier: all Git repositories start
|
||||||
out empty, and the only thing you need to do is find yourself a
|
out empty, and the only thing you need to do is find yourself a
|
||||||
subdirectory that you want to use as a working tree - either an empty
|
subdirectory that you want to use as a working tree - either an empty
|
||||||
one for a totally new project, or an existing working tree that you want
|
one for a totally new project, or an existing working tree that you want
|
||||||
to import into git.
|
to import into Git.
|
||||||
|
|
||||||
For our first example, we're going to start a totally new repository from
|
For our first example, we're going to start a totally new repository from
|
||||||
scratch, with no pre-existing files, and we'll call it 'git-tutorial'.
|
scratch, with no pre-existing files, and we'll call it 'git-tutorial'.
|
||||||
To start up, create a subdirectory for it, change into that
|
To start up, create a subdirectory for it, change into that
|
||||||
subdirectory, and initialize the git infrastructure with 'git init':
|
subdirectory, and initialize the Git infrastructure with 'git init':
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
$ mkdir git-tutorial
|
$ mkdir git-tutorial
|
||||||
@ -60,13 +60,13 @@ $ cd git-tutorial
|
|||||||
$ git init
|
$ git init
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
to which git will reply
|
to which Git will reply
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
Initialized empty Git repository in .git/
|
Initialized empty Git repository in .git/
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
which is just git's way of saying that you haven't been doing anything
|
which is just Git's way of saying that you haven't been doing anything
|
||||||
strange, and that it will have created a local `.git` directory setup for
|
strange, and that it will have created a local `.git` directory setup for
|
||||||
your new project. You will now have a `.git` directory, and you can
|
your new project. You will now have a `.git` directory, and you can
|
||||||
inspect that with 'ls'. For your new empty project, it should show you
|
inspect that with 'ls'. For your new empty project, it should show you
|
||||||
@ -102,7 +102,7 @@ start out expecting to work on the `master` branch.
|
|||||||
|
|
||||||
However, this is only a convention, and you can name your branches
|
However, this is only a convention, and you can name your branches
|
||||||
anything you want, and don't have to ever even 'have' a `master`
|
anything you want, and don't have to ever even 'have' a `master`
|
||||||
branch. A number of the git tools will assume that `.git/HEAD` is
|
branch. A number of the Git tools will assume that `.git/HEAD` is
|
||||||
valid, though.
|
valid, though.
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
@ -119,18 +119,18 @@ populating your tree.
|
|||||||
An advanced user may want to take a look at linkgit:gitrepository-layout[5]
|
An advanced user may want to take a look at linkgit:gitrepository-layout[5]
|
||||||
after finishing this tutorial.
|
after finishing this tutorial.
|
||||||
|
|
||||||
You have now created your first git repository. Of course, since it's
|
You have now created your first Git repository. Of course, since it's
|
||||||
empty, that's not very useful, so let's start populating it with data.
|
empty, that's not very useful, so let's start populating it with data.
|
||||||
|
|
||||||
|
|
||||||
Populating a git repository
|
Populating a Git repository
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
We'll keep this simple and stupid, so we'll start off with populating a
|
We'll keep this simple and stupid, so we'll start off with populating a
|
||||||
few trivial files just to get a feel for it.
|
few trivial files just to get a feel for it.
|
||||||
|
|
||||||
Start off with just creating any random files that you want to maintain
|
Start off with just creating any random files that you want to maintain
|
||||||
in your git repository. We'll start off with a few bad examples, just to
|
in your Git repository. We'll start off with a few bad examples, just to
|
||||||
get a feel for how this works:
|
get a feel for how this works:
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
@ -146,7 +146,7 @@ but to actually check in your hard work, you will have to go through two steps:
|
|||||||
|
|
||||||
- commit that index file as an object.
|
- commit that index file as an object.
|
||||||
|
|
||||||
The first step is trivial: when you want to tell git about any changes
|
The first step is trivial: when you want to tell Git about any changes
|
||||||
to your working tree, you use the 'git update-index' program. That
|
to your working tree, you use the 'git update-index' program. That
|
||||||
program normally just takes a list of filenames you want to update, but
|
program normally just takes a list of filenames you want to update, but
|
||||||
to avoid trivial mistakes, it refuses to add new entries to the index
|
to avoid trivial mistakes, it refuses to add new entries to the index
|
||||||
@ -160,10 +160,10 @@ So to populate the index with the two files you just created, you can do
|
|||||||
$ git update-index --add hello example
|
$ git update-index --add hello example
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
and you have now told git to track those two files.
|
and you have now told Git to track those two files.
|
||||||
|
|
||||||
In fact, as you did that, if you now look into your object directory,
|
In fact, as you did that, if you now look into your object directory,
|
||||||
you'll notice that git will have added two new objects to the object
|
you'll notice that Git will have added two new objects to the object
|
||||||
database. If you did exactly the steps above, you should now be able to do
|
database. If you did exactly the steps above, you should now be able to do
|
||||||
|
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ $ git cat-file -t 557db03de997c86a4a028e1ebd3a1ceb225be238
|
|||||||
----------------
|
----------------
|
||||||
|
|
||||||
where the `-t` tells 'git cat-file' to tell you what the "type" of the
|
where the `-t` tells 'git cat-file' to tell you what the "type" of the
|
||||||
object is. git will tell you that you have a "blob" object (i.e., just a
|
object is. Git will tell you that you have a "blob" object (i.e., just a
|
||||||
regular file), and you can see the contents with
|
regular file), and you can see the contents with
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
@ -214,28 +214,28 @@ Anyway, as we mentioned previously, you normally never actually take a
|
|||||||
look at the objects themselves, and typing long 40-character hex
|
look at the objects themselves, and typing long 40-character hex
|
||||||
names is not something you'd normally want to do. The above digression
|
names is not something you'd normally want to do. The above digression
|
||||||
was just to show that 'git update-index' did something magical, and
|
was just to show that 'git update-index' did something magical, and
|
||||||
actually saved away the contents of your files into the git object
|
actually saved away the contents of your files into the Git object
|
||||||
database.
|
database.
|
||||||
|
|
||||||
Updating the index did something else too: it created a `.git/index`
|
Updating the index did something else too: it created a `.git/index`
|
||||||
file. This is the index that describes your current working tree, and
|
file. This is the index that describes your current working tree, and
|
||||||
something you should be very aware of. Again, you normally never worry
|
something you should be very aware of. Again, you normally never worry
|
||||||
about the index file itself, but you should be aware of the fact that
|
about the index file itself, but you should be aware of the fact that
|
||||||
you have not actually really "checked in" your files into git so far,
|
you have not actually really "checked in" your files into Git so far,
|
||||||
you've only *told* git about them.
|
you've only *told* Git about them.
|
||||||
|
|
||||||
However, since git knows about them, you can now start using some of the
|
However, since Git knows about them, you can now start using some of the
|
||||||
most basic git commands to manipulate the files or look at their status.
|
most basic Git commands to manipulate the files or look at their status.
|
||||||
|
|
||||||
In particular, let's not even check in the two files into git yet, we'll
|
In particular, let's not even check in the two files into Git yet, we'll
|
||||||
start off by adding another line to `hello` first:
|
start off by adding another line to `hello` first:
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
$ echo "It's a new day for git" >>hello
|
$ echo "It's a new day for git" >>hello
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
and you can now, since you told git about the previous state of `hello`, ask
|
and you can now, since you told Git about the previous state of `hello`, ask
|
||||||
git what has changed in the tree compared to your old index, using the
|
Git what has changed in the tree compared to your old index, using the
|
||||||
'git diff-files' command:
|
'git diff-files' command:
|
||||||
|
|
||||||
------------
|
------------
|
||||||
@ -282,11 +282,11 @@ index 557db03..263414f 100644
|
|||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
||||||
Committing git state
|
Committing Git state
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
Now, we want to go to the next stage in git, which is to take the files
|
Now, we want to go to the next stage in Git, which is to take the files
|
||||||
that git knows about in the index, and commit them as a real tree. We do
|
that Git knows about in the index, and commit them as a real tree. We do
|
||||||
that in two phases: creating a 'tree' object, and committing that 'tree'
|
that in two phases: creating a 'tree' object, and committing that 'tree'
|
||||||
object as a 'commit' object together with an explanation of what the
|
object as a 'commit' object together with an explanation of what the
|
||||||
tree was all about, along with information of how we came to that state.
|
tree was all about, along with information of how we came to that state.
|
||||||
@ -296,7 +296,7 @@ There are no options or other input: `git write-tree` will take the
|
|||||||
current index state, and write an object that describes that whole
|
current index state, and write an object that describes that whole
|
||||||
index. In other words, we're now tying together all the different
|
index. In other words, we're now tying together all the different
|
||||||
filenames with their contents (and their permissions), and we're
|
filenames with their contents (and their permissions), and we're
|
||||||
creating the equivalent of a git "directory" object:
|
creating the equivalent of a Git "directory" object:
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
$ git write-tree
|
$ git write-tree
|
||||||
@ -415,9 +415,9 @@ regardless of whether the `--cached` flag is used or not. The `--cached`
|
|||||||
flag really only determines whether the file *contents* to be compared
|
flag really only determines whether the file *contents* to be compared
|
||||||
come from the working tree or not.
|
come from the working tree or not.
|
||||||
|
|
||||||
This is not hard to understand, as soon as you realize that git simply
|
This is not hard to understand, as soon as you realize that Git simply
|
||||||
never knows (or cares) about files that it is not told about
|
never knows (or cares) about files that it is not told about
|
||||||
explicitly. git will never go *looking* for files to compare, it
|
explicitly. Git will never go *looking* for files to compare, it
|
||||||
expects you to tell it what the files are, and that's what the index
|
expects you to tell it what the files are, and that's what the index
|
||||||
is there for.
|
is there for.
|
||||||
================
|
================
|
||||||
@ -433,7 +433,7 @@ update the index cache:
|
|||||||
$ git update-index hello
|
$ git update-index hello
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
(note how we didn't need the `--add` flag this time, since git knew
|
(note how we didn't need the `--add` flag this time, since Git knew
|
||||||
about the file already).
|
about the file already).
|
||||||
|
|
||||||
Note what happens to the different 'git diff-{asterisk}' versions here.
|
Note what happens to the different 'git diff-{asterisk}' versions here.
|
||||||
@ -464,7 +464,7 @@ this point (you can continue to edit things and update the index), you
|
|||||||
can just leave an empty message. Otherwise `git commit` will commit
|
can just leave an empty message. Otherwise `git commit` will commit
|
||||||
the change for you.
|
the change for you.
|
||||||
|
|
||||||
You've now made your first real git commit. And if you're interested in
|
You've now made your first real Git commit. And if you're interested in
|
||||||
looking at what `git commit` really does, feel free to investigate:
|
looking at what `git commit` really does, feel free to investigate:
|
||||||
it's a few very simple shell scripts to generate the helpful (?) commit
|
it's a few very simple shell scripts to generate the helpful (?) commit
|
||||||
message headers, and a few one-liners that actually do the
|
message headers, and a few one-liners that actually do the
|
||||||
@ -535,7 +535,7 @@ all, but just show the actual commit message.
|
|||||||
In fact, together with the 'git rev-list' program (which generates a
|
In fact, together with the 'git rev-list' program (which generates a
|
||||||
list of revisions), 'git diff-tree' ends up being a veritable fount of
|
list of revisions), 'git diff-tree' ends up being a veritable fount of
|
||||||
changes. A trivial (but very useful) script called 'git whatchanged' is
|
changes. A trivial (but very useful) script called 'git whatchanged' is
|
||||||
included with git which does exactly this, and shows a log of recent
|
included with Git which does exactly this, and shows a log of recent
|
||||||
activities.
|
activities.
|
||||||
|
|
||||||
To see the whole history of our pitiful little git-tutorial project, you
|
To see the whole history of our pitiful little git-tutorial project, you
|
||||||
@ -563,19 +563,19 @@ the log.showroot configuration variable to false. Having this, you
|
|||||||
can still show it for each command just adding the `--root` option,
|
can still show it for each command just adding the `--root` option,
|
||||||
which is a flag for 'git diff-tree' accepted by both commands.
|
which is a flag for 'git diff-tree' accepted by both commands.
|
||||||
|
|
||||||
With that, you should now be having some inkling of what git does, and
|
With that, you should now be having some inkling of what Git does, and
|
||||||
can explore on your own.
|
can explore on your own.
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
Most likely, you are not directly using the core
|
Most likely, you are not directly using the core
|
||||||
git Plumbing commands, but using Porcelain such as 'git add', `git-rm'
|
Git Plumbing commands, but using Porcelain such as 'git add', `git-rm'
|
||||||
and `git-commit'.
|
and `git-commit'.
|
||||||
|
|
||||||
|
|
||||||
Tagging a version
|
Tagging a version
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
In git, there are two kinds of tags, a "light" one, and an "annotated tag".
|
In Git, there are two kinds of tags, a "light" one, and an "annotated tag".
|
||||||
|
|
||||||
A "light" tag is technically nothing more than a branch, except we put
|
A "light" tag is technically nothing more than a branch, except we put
|
||||||
it in the `.git/refs/tags/` subdirectory instead of calling it a `head`.
|
it in the `.git/refs/tags/` subdirectory instead of calling it a `head`.
|
||||||
@ -598,7 +598,7 @@ obviously be an empty diff, but if you continue to develop and commit
|
|||||||
stuff, you can use your tag as an "anchor-point" to see what has changed
|
stuff, you can use your tag as an "anchor-point" to see what has changed
|
||||||
since you tagged it.
|
since you tagged it.
|
||||||
|
|
||||||
An "annotated tag" is actually a real git object, and contains not only a
|
An "annotated tag" is actually a real Git object, and contains not only a
|
||||||
pointer to the state you want to tag, but also a small tag name and
|
pointer to the state you want to tag, but also a small tag name and
|
||||||
message, along with optionally a PGP signature that says that yes,
|
message, along with optionally a PGP signature that says that yes,
|
||||||
you really did
|
you really did
|
||||||
@ -623,17 +623,17 @@ name for the state at that point.
|
|||||||
Copying repositories
|
Copying repositories
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
git repositories are normally totally self-sufficient and relocatable.
|
Git repositories are normally totally self-sufficient and relocatable.
|
||||||
Unlike CVS, for example, there is no separate notion of
|
Unlike CVS, for example, there is no separate notion of
|
||||||
"repository" and "working tree". A git repository normally *is* the
|
"repository" and "working tree". A Git repository normally *is* the
|
||||||
working tree, with the local git information hidden in the `.git`
|
working tree, with the local Git information hidden in the `.git`
|
||||||
subdirectory. There is nothing else. What you see is what you got.
|
subdirectory. There is nothing else. What you see is what you got.
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
You can tell git to split the git internal information from
|
You can tell Git to split the Git internal information from
|
||||||
the directory that it tracks, but we'll ignore that for now: it's not
|
the directory that it tracks, but we'll ignore that for now: it's not
|
||||||
how normal projects work, and it's really only meant for special uses.
|
how normal projects work, and it's really only meant for special uses.
|
||||||
So the mental model of "the git information is always tied directly to
|
So the mental model of "the Git information is always tied directly to
|
||||||
the working tree that it describes" may not be technically 100%
|
the working tree that it describes" may not be technically 100%
|
||||||
accurate, but it's a good model for all normal use.
|
accurate, but it's a good model for all normal use.
|
||||||
|
|
||||||
@ -649,13 +649,13 @@ $ rm -rf git-tutorial
|
|||||||
and it will be gone. There's no external repository, and there's no
|
and it will be gone. There's no external repository, and there's no
|
||||||
history outside the project you created.
|
history outside the project you created.
|
||||||
|
|
||||||
- if you want to move or duplicate a git repository, you can do so. There
|
- if you want to move or duplicate a Git repository, you can do so. There
|
||||||
is 'git clone' command, but if all you want to do is just to
|
is 'git clone' command, but if all you want to do is just to
|
||||||
create a copy of your repository (with all the full history that
|
create a copy of your repository (with all the full history that
|
||||||
went along with it), you can do so with a regular
|
went along with it), you can do so with a regular
|
||||||
`cp -a git-tutorial new-git-tutorial`.
|
`cp -a git-tutorial new-git-tutorial`.
|
||||||
+
|
+
|
||||||
Note that when you've moved or copied a git repository, your git index
|
Note that when you've moved or copied a Git repository, your Git index
|
||||||
file (which caches various information, notably some of the "stat"
|
file (which caches various information, notably some of the "stat"
|
||||||
information for the files involved) will likely need to be refreshed.
|
information for the files involved) will likely need to be refreshed.
|
||||||
So after you do a `cp -a` to create a new copy, you'll want to do
|
So after you do a `cp -a` to create a new copy, you'll want to do
|
||||||
@ -667,7 +667,7 @@ $ git update-index --refresh
|
|||||||
in the new repository to make sure that the index file is up-to-date.
|
in the new repository to make sure that the index file is up-to-date.
|
||||||
|
|
||||||
Note that the second point is true even across machines. You can
|
Note that the second point is true even across machines. You can
|
||||||
duplicate a remote git repository with *any* regular copy mechanism, be it
|
duplicate a remote Git repository with *any* regular copy mechanism, be it
|
||||||
'scp', 'rsync' or 'wget'.
|
'scp', 'rsync' or 'wget'.
|
||||||
|
|
||||||
When copying a remote repository, you'll want to at a minimum update the
|
When copying a remote repository, you'll want to at a minimum update the
|
||||||
@ -694,23 +694,23 @@ The above can also be written as simply
|
|||||||
$ git reset
|
$ git reset
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
and in fact a lot of the common git command combinations can be scripted
|
and in fact a lot of the common Git command combinations can be scripted
|
||||||
with the `git xyz` interfaces. You can learn things by just looking
|
with the `git xyz` interfaces. You can learn things by just looking
|
||||||
at what the various git scripts do. For example, `git reset` used to be
|
at what the various git scripts do. For example, `git reset` used to be
|
||||||
the above two lines implemented in 'git reset', but some things like
|
the above two lines implemented in 'git reset', but some things like
|
||||||
'git status' and 'git commit' are slightly more complex scripts around
|
'git status' and 'git commit' are slightly more complex scripts around
|
||||||
the basic git commands.
|
the basic Git commands.
|
||||||
|
|
||||||
Many (most?) public remote repositories will not contain any of
|
Many (most?) public remote repositories will not contain any of
|
||||||
the checked out files or even an index file, and will *only* contain the
|
the checked out files or even an index file, and will *only* contain the
|
||||||
actual core git files. Such a repository usually doesn't even have the
|
actual core Git files. Such a repository usually doesn't even have the
|
||||||
`.git` subdirectory, but has all the git files directly in the
|
`.git` subdirectory, but has all the Git files directly in the
|
||||||
repository.
|
repository.
|
||||||
|
|
||||||
To create your own local live copy of such a "raw" git repository, you'd
|
To create your own local live copy of such a "raw" Git repository, you'd
|
||||||
first create your own subdirectory for the project, and then copy the
|
first create your own subdirectory for the project, and then copy the
|
||||||
raw repository contents into the `.git` directory. For example, to
|
raw repository contents into the `.git` directory. For example, to
|
||||||
create your own copy of the git repository, you'd do the following
|
create your own copy of the Git repository, you'd do the following
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
$ mkdir my-git
|
$ mkdir my-git
|
||||||
@ -725,7 +725,7 @@ $ git read-tree HEAD
|
|||||||
----------------
|
----------------
|
||||||
|
|
||||||
to populate the index. However, now you have populated the index, and
|
to populate the index. However, now you have populated the index, and
|
||||||
you have all the git internal files, but you will notice that you don't
|
you have all the Git internal files, but you will notice that you don't
|
||||||
actually have any of the working tree files to work on. To get
|
actually have any of the working tree files to work on. To get
|
||||||
those, you'd check them out with
|
those, you'd check them out with
|
||||||
|
|
||||||
@ -757,7 +757,7 @@ repository, and checked it out.
|
|||||||
Creating a new branch
|
Creating a new branch
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
Branches in git are really nothing more than pointers into the git
|
Branches in Git are really nothing more than pointers into the Git
|
||||||
object database from within the `.git/refs/` subdirectory, and as we
|
object database from within the `.git/refs/` subdirectory, and as we
|
||||||
already discussed, the `HEAD` branch is nothing but a symlink to one of
|
already discussed, the `HEAD` branch is nothing but a symlink to one of
|
||||||
these object pointers.
|
these object pointers.
|
||||||
@ -849,7 +849,7 @@ $ git commit -m "Some work." -i hello
|
|||||||
Here, we just added another line to `hello`, and we used a shorthand for
|
Here, we just added another line to `hello`, and we used a shorthand for
|
||||||
doing both `git update-index hello` and `git commit` by just giving the
|
doing both `git update-index hello` and `git commit` by just giving the
|
||||||
filename directly to `git commit`, with an `-i` flag (it tells
|
filename directly to `git commit`, with an `-i` flag (it tells
|
||||||
git to 'include' that file in addition to what you have done to
|
Git to 'include' that file in addition to what you have done to
|
||||||
the index file so far when making the commit). The `-m` flag is to give the
|
the index file so far when making the commit). The `-m` flag is to give the
|
||||||
commit log message from the command line.
|
commit log message from the command line.
|
||||||
|
|
||||||
@ -900,7 +900,7 @@ where the first argument is going to be used as the commit message if
|
|||||||
the merge can be resolved automatically.
|
the merge can be resolved automatically.
|
||||||
|
|
||||||
Now, in this case we've intentionally created a situation where the
|
Now, in this case we've intentionally created a situation where the
|
||||||
merge will need to be fixed up by hand, though, so git will do as much
|
merge will need to be fixed up by hand, though, so Git will do as much
|
||||||
of it as it can automatically (which in this case is just merge the `example`
|
of it as it can automatically (which in this case is just merge the `example`
|
||||||
file, which had no differences in the `mybranch` branch), and say:
|
file, which had no differences in the `mybranch` branch), and say:
|
||||||
|
|
||||||
@ -939,7 +939,7 @@ After you're done, start up `gitk --all` to see graphically what the
|
|||||||
history looks like. Notice that `mybranch` still exists, and you can
|
history looks like. Notice that `mybranch` still exists, and you can
|
||||||
switch to it, and continue to work with it if you want to. The
|
switch to it, and continue to work with it if you want to. The
|
||||||
`mybranch` branch will not contain the merge, but next time you merge it
|
`mybranch` branch will not contain the merge, but next time you merge it
|
||||||
from the `master` branch, git will know how you merged it, so you'll not
|
from the `master` branch, Git will know how you merged it, so you'll not
|
||||||
have to do _that_ merge again.
|
have to do _that_ merge again.
|
||||||
|
|
||||||
Another useful tool, especially if you do not always work in X-Window
|
Another useful tool, especially if you do not always work in X-Window
|
||||||
@ -1028,7 +1028,7 @@ Merging external work
|
|||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
It's usually much more common that you merge with somebody else than
|
It's usually much more common that you merge with somebody else than
|
||||||
merging with your own branches, so it's worth pointing out that git
|
merging with your own branches, so it's worth pointing out that Git
|
||||||
makes that very easy too, and in fact, it's not that different from
|
makes that very easy too, and in fact, it's not that different from
|
||||||
doing a 'git merge'. In fact, a remote merge ends up being nothing
|
doing a 'git merge'. In fact, a remote merge ends up being nothing
|
||||||
more than "fetch the work from a remote repository into a temporary tag"
|
more than "fetch the work from a remote repository into a temporary tag"
|
||||||
@ -1068,7 +1068,7 @@ and requires you to have a log-in privilege over `ssh` to the
|
|||||||
remote machine. It finds out the set of objects the other side
|
remote machine. It finds out the set of objects the other side
|
||||||
lacks by exchanging the head commits both ends have and
|
lacks by exchanging the head commits both ends have and
|
||||||
transfers (close to) minimum set of objects. It is by far the
|
transfers (close to) minimum set of objects. It is by far the
|
||||||
most efficient way to exchange git objects between repositories.
|
most efficient way to exchange Git objects between repositories.
|
||||||
|
|
||||||
Local directory::
|
Local directory::
|
||||||
`/path/to/repo.git/`
|
`/path/to/repo.git/`
|
||||||
@ -1077,7 +1077,7 @@ This transport is the same as SSH transport but uses 'sh' to run
|
|||||||
both ends on the local machine instead of running other end on
|
both ends on the local machine instead of running other end on
|
||||||
the remote machine via 'ssh'.
|
the remote machine via 'ssh'.
|
||||||
|
|
||||||
git Native::
|
Git Native::
|
||||||
`git://remote.machine/path/to/repo.git/`
|
`git://remote.machine/path/to/repo.git/`
|
||||||
+
|
+
|
||||||
This transport was designed for anonymous downloading. Like SSH
|
This transport was designed for anonymous downloading. Like SSH
|
||||||
@ -1099,8 +1099,8 @@ necessary objects. Because of this behavior, they are
|
|||||||
sometimes also called 'commit walkers'.
|
sometimes also called 'commit walkers'.
|
||||||
+
|
+
|
||||||
The 'commit walkers' are sometimes also called 'dumb
|
The 'commit walkers' are sometimes also called 'dumb
|
||||||
transports', because they do not require any git aware smart
|
transports', because they do not require any Git aware smart
|
||||||
server like git Native transport does. Any stock HTTP server
|
server like Git Native transport does. Any stock HTTP server
|
||||||
that does not even support directory index would suffice. But
|
that does not even support directory index would suffice. But
|
||||||
you must prepare your repository with 'git update-server-info'
|
you must prepare your repository with 'git update-server-info'
|
||||||
to help dumb transport downloaders.
|
to help dumb transport downloaders.
|
||||||
@ -1321,7 +1321,7 @@ update the public repository from it. This is often called
|
|||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
This public repository could further be mirrored, and that is
|
This public repository could further be mirrored, and that is
|
||||||
how git repositories at `kernel.org` are managed.
|
how Git repositories at `kernel.org` are managed.
|
||||||
|
|
||||||
Publishing the changes from your local (private) repository to
|
Publishing the changes from your local (private) repository to
|
||||||
your remote (public) repository requires a write privilege on
|
your remote (public) repository requires a write privilege on
|
||||||
@ -1340,7 +1340,7 @@ done only once.
|
|||||||
on the remote machine. The communication between the two over
|
on the remote machine. The communication between the two over
|
||||||
the network internally uses an SSH connection.
|
the network internally uses an SSH connection.
|
||||||
|
|
||||||
Your private repository's git directory is usually `.git`, but
|
Your private repository's Git directory is usually `.git`, but
|
||||||
your public repository is often named after the project name,
|
your public repository is often named after the project name,
|
||||||
i.e. `<project>.git`. Let's create such a public repository for
|
i.e. `<project>.git`. Let's create such a public repository for
|
||||||
project `my-git`. After logging into the remote machine, create
|
project `my-git`. After logging into the remote machine, create
|
||||||
@ -1350,7 +1350,7 @@ an empty directory:
|
|||||||
$ mkdir my-git.git
|
$ mkdir my-git.git
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Then, make that directory into a git repository by running
|
Then, make that directory into a Git repository by running
|
||||||
'git init', but this time, since its name is not the usual
|
'git init', but this time, since its name is not the usual
|
||||||
`.git`, we do things slightly differently:
|
`.git`, we do things slightly differently:
|
||||||
|
|
||||||
@ -1389,7 +1389,7 @@ This synchronizes your public repository to match the named
|
|||||||
branch head (i.e. `master` in this case) and objects reachable
|
branch head (i.e. `master` in this case) and objects reachable
|
||||||
from them in your current repository.
|
from them in your current repository.
|
||||||
|
|
||||||
As a real example, this is how I update my public git
|
As a real example, this is how I update my public Git
|
||||||
repository. Kernel.org mirror network takes care of the
|
repository. Kernel.org mirror network takes care of the
|
||||||
propagation to other publicly visible machines:
|
propagation to other publicly visible machines:
|
||||||
|
|
||||||
@ -1402,9 +1402,9 @@ Packing your repository
|
|||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Earlier, we saw that one file under `.git/objects/??/` directory
|
Earlier, we saw that one file under `.git/objects/??/` directory
|
||||||
is stored for each git object you create. This representation
|
is stored for each Git object you create. This representation
|
||||||
is efficient to create atomically and safely, but
|
is efficient to create atomically and safely, but
|
||||||
not so convenient to transport over the network. Since git objects are
|
not so convenient to transport over the network. Since Git objects are
|
||||||
immutable once they are created, there is a way to optimize the
|
immutable once they are created, there is a way to optimize the
|
||||||
storage by "packing them together". The command
|
storage by "packing them together". The command
|
||||||
|
|
||||||
@ -1472,14 +1472,14 @@ repositories every once in a while.
|
|||||||
Working with Others
|
Working with Others
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Although git is a truly distributed system, it is often
|
Although Git is a truly distributed system, it is often
|
||||||
convenient to organize your project with an informal hierarchy
|
convenient to organize your project with an informal hierarchy
|
||||||
of developers. Linux kernel development is run this way. There
|
of developers. Linux kernel development is run this way. There
|
||||||
is a nice illustration (page 17, "Merges to Mainline") in
|
is a nice illustration (page 17, "Merges to Mainline") in
|
||||||
link:http://www.xenotime.net/linux/mentor/linux-mentoring-2006.pdf[Randy Dunlap's presentation].
|
link:http://www.xenotime.net/linux/mentor/linux-mentoring-2006.pdf[Randy Dunlap's presentation].
|
||||||
|
|
||||||
It should be stressed that this hierarchy is purely *informal*.
|
It should be stressed that this hierarchy is purely *informal*.
|
||||||
There is nothing fundamental in git that enforces the "chain of
|
There is nothing fundamental in Git that enforces the "chain of
|
||||||
patch flow" this hierarchy implies. You do not have to pull
|
patch flow" this hierarchy implies. You do not have to pull
|
||||||
from only one remote repository.
|
from only one remote repository.
|
||||||
|
|
||||||
@ -1592,7 +1592,7 @@ Working with Others, Shared Repository Style
|
|||||||
|
|
||||||
If you are coming from CVS background, the style of cooperation
|
If you are coming from CVS background, the style of cooperation
|
||||||
suggested in the previous section may be new to you. You do not
|
suggested in the previous section may be new to you. You do not
|
||||||
have to worry. git supports "shared public repository" style of
|
have to worry. Git supports "shared public repository" style of
|
||||||
cooperation you are probably more familiar with as well.
|
cooperation you are probably more familiar with as well.
|
||||||
|
|
||||||
See linkgit:gitcvs-migration[7] for the details.
|
See linkgit:gitcvs-migration[7] for the details.
|
||||||
@ -1602,7 +1602,7 @@ Bundling your work together
|
|||||||
|
|
||||||
It is likely that you will be working on more than one thing at
|
It is likely that you will be working on more than one thing at
|
||||||
a time. It is easy to manage those more-or-less independent tasks
|
a time. It is easy to manage those more-or-less independent tasks
|
||||||
using branches with git.
|
using branches with Git.
|
||||||
|
|
||||||
We have already seen how branches work previously,
|
We have already seen how branches work previously,
|
||||||
with "fun and work" example using two branches. The idea is the
|
with "fun and work" example using two branches. The idea is the
|
||||||
|
@ -3,7 +3,7 @@ gitcredentials(7)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
gitcredentials - providing usernames and passwords to git
|
gitcredentials - providing usernames and passwords to Git
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -18,13 +18,13 @@ DESCRIPTION
|
|||||||
Git will sometimes need credentials from the user in order to perform
|
Git will sometimes need credentials from the user in order to perform
|
||||||
operations; for example, it may need to ask for a username and password
|
operations; for example, it may need to ask for a username and password
|
||||||
in order to access a remote repository over HTTP. This manual describes
|
in order to access a remote repository over HTTP. This manual describes
|
||||||
the mechanisms git uses to request these credentials, as well as some
|
the mechanisms Git uses to request these credentials, as well as some
|
||||||
features to avoid inputting these credentials repeatedly.
|
features to avoid inputting these credentials repeatedly.
|
||||||
|
|
||||||
REQUESTING CREDENTIALS
|
REQUESTING CREDENTIALS
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
Without any credential helpers defined, git will try the following
|
Without any credential helpers defined, Git will try the following
|
||||||
strategies to ask the user for usernames and passwords:
|
strategies to ask the user for usernames and passwords:
|
||||||
|
|
||||||
1. If the `GIT_ASKPASS` environment variable is set, the program
|
1. If the `GIT_ASKPASS` environment variable is set, the program
|
||||||
@ -59,7 +59,7 @@ for a password. It is generally configured by adding this to your config:
|
|||||||
username = me
|
username = me
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
Credential helpers, on the other hand, are external programs from which git can
|
Credential helpers, on the other hand, are external programs from which Git can
|
||||||
request both usernames and passwords; they typically interface with secure
|
request both usernames and passwords; they typically interface with secure
|
||||||
storage provided by the OS or other programs.
|
storage provided by the OS or other programs.
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ store::
|
|||||||
You may also have third-party helpers installed; search for
|
You may also have third-party helpers installed; search for
|
||||||
`credential-*` in the output of `git help -a`, and consult the
|
`credential-*` in the output of `git help -a`, and consult the
|
||||||
documentation of individual helpers. Once you have selected a helper,
|
documentation of individual helpers. Once you have selected a helper,
|
||||||
you can tell git to use it by putting its name into the
|
you can tell Git to use it by putting its name into the
|
||||||
credential.helper variable.
|
credential.helper variable.
|
||||||
|
|
||||||
1. Find a helper.
|
1. Find a helper.
|
||||||
@ -95,7 +95,7 @@ credential-foo
|
|||||||
$ git help credential-foo
|
$ git help credential-foo
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
3. Tell git to use it.
|
3. Tell Git to use it.
|
||||||
+
|
+
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
$ git config --global credential.helper foo
|
$ git config --global credential.helper foo
|
||||||
@ -103,7 +103,7 @@ $ git config --global credential.helper foo
|
|||||||
|
|
||||||
If there are multiple instances of the `credential.helper` configuration
|
If there are multiple instances of the `credential.helper` configuration
|
||||||
variable, each helper will be tried in turn, and may provide a username,
|
variable, each helper will be tried in turn, and may provide a username,
|
||||||
password, or nothing. Once git has acquired both a username and a
|
password, or nothing. Once Git has acquired both a username and a
|
||||||
password, no more helpers will be tried.
|
password, no more helpers will be tried.
|
||||||
|
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ Git considers each credential to have a context defined by a URL. This context
|
|||||||
is used to look up context-specific configuration, and is passed to any
|
is used to look up context-specific configuration, and is passed to any
|
||||||
helpers, which may use it as an index into secure storage.
|
helpers, which may use it as an index into secure storage.
|
||||||
|
|
||||||
For instance, imagine we are accessing `https://example.com/foo.git`. When git
|
For instance, imagine we are accessing `https://example.com/foo.git`. When Git
|
||||||
looks into a config file to see if a section matches this context, it will
|
looks into a config file to see if a section matches this context, it will
|
||||||
consider the two a match if the context is a more-specific subset of the
|
consider the two a match if the context is a more-specific subset of the
|
||||||
pattern in the config file. For example, if you have this in your config file:
|
pattern in the config file. For example, if you have this in your config file:
|
||||||
@ -133,10 +133,10 @@ context would not match:
|
|||||||
username = foo
|
username = foo
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
because the hostnames differ. Nor would it match `foo.example.com`; git
|
because the hostnames differ. Nor would it match `foo.example.com`; Git
|
||||||
compares hostnames exactly, without considering whether two hosts are part of
|
compares hostnames exactly, without considering whether two hosts are part of
|
||||||
the same domain. Likewise, a config entry for `http://example.com` would not
|
the same domain. Likewise, a config entry for `http://example.com` would not
|
||||||
match: git compares the protocols exactly.
|
match: Git compares the protocols exactly.
|
||||||
|
|
||||||
|
|
||||||
CONFIGURATION OPTIONS
|
CONFIGURATION OPTIONS
|
||||||
@ -164,7 +164,7 @@ username::
|
|||||||
|
|
||||||
useHttpPath::
|
useHttpPath::
|
||||||
|
|
||||||
By default, git does not consider the "path" component of an http URL
|
By default, Git does not consider the "path" component of an http URL
|
||||||
to be worth matching via external helpers. This means that a credential
|
to be worth matching via external helpers. This means that a credential
|
||||||
stored for `https://example.com/foo.git` will also be used for
|
stored for `https://example.com/foo.git` will also be used for
|
||||||
`https://example.com/bar.git`. If you do want to distinguish these
|
`https://example.com/bar.git`. If you do want to distinguish these
|
||||||
@ -175,7 +175,7 @@ CUSTOM HELPERS
|
|||||||
--------------
|
--------------
|
||||||
|
|
||||||
You can write your own custom helpers to interface with any system in
|
You can write your own custom helpers to interface with any system in
|
||||||
which you keep credentials. See the documentation for git's
|
which you keep credentials. See the documentation for Git's
|
||||||
link:technical/api-credentials.html[credentials API] for details.
|
link:technical/api-credentials.html[credentials API] for details.
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
|
@ -3,7 +3,7 @@ gitcvs-migration(7)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
gitcvs-migration - git for CVS users
|
gitcvs-migration - Git for CVS users
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -19,7 +19,7 @@ important than any other. However, you can emulate the CVS model by
|
|||||||
designating a single shared repository which people can synchronize with;
|
designating a single shared repository which people can synchronize with;
|
||||||
this document explains how to do that.
|
this document explains how to do that.
|
||||||
|
|
||||||
Some basic familiarity with git is required. Having gone through
|
Some basic familiarity with Git is required. Having gone through
|
||||||
linkgit:gittutorial[7] and
|
linkgit:gittutorial[7] and
|
||||||
linkgit:gitglossary[7] should be sufficient.
|
linkgit:gitglossary[7] should be sufficient.
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ other than `master`.
|
|||||||
Setting Up a Shared Repository
|
Setting Up a Shared Repository
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
We assume you have already created a git repository for your project,
|
We assume you have already created a Git repository for your project,
|
||||||
possibly created from scratch or from a tarball (see
|
possibly created from scratch or from a tarball (see
|
||||||
linkgit:gittutorial[7]), or imported from an already existing CVS
|
linkgit:gittutorial[7]), or imported from an already existing CVS
|
||||||
repository (see the next section).
|
repository (see the next section).
|
||||||
@ -101,7 +101,7 @@ Next, give every team member read/write access to this repository. One
|
|||||||
easy way to do this is to give all the team members ssh access to the
|
easy way to do this is to give all the team members ssh access to the
|
||||||
machine where the repository is hosted. If you don't want to give them a
|
machine where the repository is hosted. If you don't want to give them a
|
||||||
full shell on the machine, there is a restricted shell which only allows
|
full shell on the machine, there is a restricted shell which only allows
|
||||||
users to do git pushes and pulls; see linkgit:git-shell[1].
|
users to do Git pushes and pulls; see linkgit:git-shell[1].
|
||||||
|
|
||||||
Put all the committers in the same group, and make the repository
|
Put all the committers in the same group, and make the repository
|
||||||
writable by that group:
|
writable by that group:
|
||||||
@ -125,7 +125,7 @@ of the project you are interested in and run linkgit:git-cvsimport[1]:
|
|||||||
$ git cvsimport -C <destination> <module>
|
$ git cvsimport -C <destination> <module>
|
||||||
-------------------------------------------
|
-------------------------------------------
|
||||||
|
|
||||||
This puts a git archive of the named CVS module in the directory
|
This puts a Git archive of the named CVS module in the directory
|
||||||
<destination>, which will be created if necessary.
|
<destination>, which will be created if necessary.
|
||||||
|
|
||||||
The import checks out from CVS every revision of every file. Reportedly
|
The import checks out from CVS every revision of every file. Reportedly
|
||||||
@ -133,8 +133,8 @@ cvsimport can average some twenty revisions per second, so for a
|
|||||||
medium-sized project this should not take more than a couple of minutes.
|
medium-sized project this should not take more than a couple of minutes.
|
||||||
Larger projects or remote repositories may take longer.
|
Larger projects or remote repositories may take longer.
|
||||||
|
|
||||||
The main trunk is stored in the git branch named `origin`, and additional
|
The main trunk is stored in the Git branch named `origin`, and additional
|
||||||
CVS branches are stored in git branches with the same names. The most
|
CVS branches are stored in Git branches with the same names. The most
|
||||||
recent version of the main trunk is also left checked out on the `master`
|
recent version of the main trunk is also left checked out on the `master`
|
||||||
branch, so you can start adding your own changes right away.
|
branch, so you can start adding your own changes right away.
|
||||||
|
|
||||||
@ -160,10 +160,10 @@ You can enforce finer grained permissions using update hooks. See
|
|||||||
link:howto/update-hook-example.txt[Controlling access to branches using
|
link:howto/update-hook-example.txt[Controlling access to branches using
|
||||||
update hooks].
|
update hooks].
|
||||||
|
|
||||||
Providing CVS Access to a git Repository
|
Providing CVS Access to a Git Repository
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
It is also possible to provide true CVS access to a git repository, so
|
It is also possible to provide true CVS access to a Git repository, so
|
||||||
that developers can still use CVS; see linkgit:git-cvsserver[1] for
|
that developers can still use CVS; see linkgit:git-cvsserver[1] for
|
||||||
details.
|
details.
|
||||||
|
|
||||||
@ -171,8 +171,8 @@ Alternative Development Models
|
|||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
CVS users are accustomed to giving a group of developers commit access to
|
CVS users are accustomed to giving a group of developers commit access to
|
||||||
a common repository. As we've seen, this is also possible with git.
|
a common repository. As we've seen, this is also possible with Git.
|
||||||
However, the distributed nature of git allows other development models,
|
However, the distributed nature of Git allows other development models,
|
||||||
and you may want to first consider whether one of them might be a better
|
and you may want to first consider whether one of them might be a better
|
||||||
fit for your project.
|
fit for your project.
|
||||||
|
|
||||||
|
@ -254,7 +254,7 @@ pattern. Filepairs that match a glob pattern on an earlier line
|
|||||||
in the file are output before ones that match a later line, and
|
in the file are output before ones that match a later line, and
|
||||||
filepairs that do not match any glob pattern are output last.
|
filepairs that do not match any glob pattern are output last.
|
||||||
|
|
||||||
As an example, a typical orderfile for the core git probably
|
As an example, a typical orderfile for the core Git probably
|
||||||
would look like this:
|
would look like this:
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
@ -3,7 +3,7 @@ gitglossary(7)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
gitglossary - A GIT Glossary
|
gitglossary - A Git Glossary
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -19,7 +19,7 @@ SEE ALSO
|
|||||||
linkgit:gittutorial[7],
|
linkgit:gittutorial[7],
|
||||||
linkgit:gittutorial-2[7],
|
linkgit:gittutorial-2[7],
|
||||||
linkgit:gitcvs-migration[7],
|
linkgit:gitcvs-migration[7],
|
||||||
link:everyday.html[Everyday git],
|
link:everyday.html[Everyday Git],
|
||||||
link:user-manual.html[The Git User's Manual]
|
link:user-manual.html[The Git User's Manual]
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
|
@ -3,7 +3,7 @@ githooks(5)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
githooks - Hooks used by git
|
githooks - Hooks used by Git
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -108,7 +108,7 @@ it is not suppressed by the `--no-verify` option. A non-zero exit
|
|||||||
means a failure of the hook and aborts the commit. It should not
|
means a failure of the hook and aborts the commit. It should not
|
||||||
be used as replacement for pre-commit hook.
|
be used as replacement for pre-commit hook.
|
||||||
|
|
||||||
The sample `prepare-commit-msg` hook that comes with git comments
|
The sample `prepare-commit-msg` hook that comes with Git comments
|
||||||
out the `Conflicts:` part of a merge's commit message.
|
out the `Conflicts:` part of a merge's commit message.
|
||||||
|
|
||||||
commit-msg
|
commit-msg
|
||||||
@ -304,7 +304,7 @@ for the user.
|
|||||||
|
|
||||||
The default 'post-receive' hook is empty, but there is
|
The default 'post-receive' hook is empty, but there is
|
||||||
a sample script `post-receive-email` provided in the `contrib/hooks`
|
a sample script `post-receive-email` provided in the `contrib/hooks`
|
||||||
directory in git distribution, which implements sending commit
|
directory in Git distribution, which implements sending commit
|
||||||
emails.
|
emails.
|
||||||
|
|
||||||
[[post-update]]
|
[[post-update]]
|
||||||
@ -332,7 +332,7 @@ them.
|
|||||||
When enabled, the default 'post-update' hook runs
|
When enabled, the default 'post-update' hook runs
|
||||||
'git update-server-info' to keep the information used by dumb
|
'git update-server-info' to keep the information used by dumb
|
||||||
transports (e.g., HTTP) up-to-date. If you are publishing
|
transports (e.g., HTTP) up-to-date. If you are publishing
|
||||||
a git repository that is accessible via HTTP, you should
|
a Git repository that is accessible via HTTP, you should
|
||||||
probably enable this hook.
|
probably enable this hook.
|
||||||
|
|
||||||
Both standard output and standard error output are forwarded to
|
Both standard output and standard error output are forwarded to
|
||||||
|
@ -13,12 +13,12 @@ DESCRIPTION
|
|||||||
-----------
|
-----------
|
||||||
|
|
||||||
A `gitignore` file specifies intentionally untracked files that
|
A `gitignore` file specifies intentionally untracked files that
|
||||||
git should ignore.
|
Git should ignore.
|
||||||
Files already tracked by git are not affected; see the NOTES
|
Files already tracked by Git are not affected; see the NOTES
|
||||||
below for details.
|
below for details.
|
||||||
|
|
||||||
Each line in a `gitignore` file specifies a pattern.
|
Each line in a `gitignore` file specifies a pattern.
|
||||||
When deciding whether to ignore a path, git normally checks
|
When deciding whether to ignore a path, Git normally checks
|
||||||
`gitignore` patterns from multiple sources, with the following
|
`gitignore` patterns from multiple sources, with the following
|
||||||
order of precedence, from highest to lowest (within one level of
|
order of precedence, from highest to lowest (within one level of
|
||||||
precedence, the last matching pattern decides the outcome):
|
precedence, the last matching pattern decides the outcome):
|
||||||
@ -53,17 +53,17 @@ be used.
|
|||||||
the repository but are specific to one user's workflow) should go into
|
the repository but are specific to one user's workflow) should go into
|
||||||
the `$GIT_DIR/info/exclude` file.
|
the `$GIT_DIR/info/exclude` file.
|
||||||
|
|
||||||
* Patterns which a user wants git to
|
* Patterns which a user wants Git to
|
||||||
ignore in all situations (e.g., backup or temporary files generated by
|
ignore in all situations (e.g., backup or temporary files generated by
|
||||||
the user's editor of choice) generally go into a file specified by
|
the user's editor of choice) generally go into a file specified by
|
||||||
`core.excludesfile` in the user's `~/.gitconfig`. Its default value is
|
`core.excludesfile` in the user's `~/.gitconfig`. Its default value is
|
||||||
$XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or
|
$XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or
|
||||||
empty, $HOME/.config/git/ignore is used instead.
|
empty, $HOME/.config/git/ignore is used instead.
|
||||||
|
|
||||||
The underlying git plumbing tools, such as
|
The underlying Git plumbing tools, such as
|
||||||
'git ls-files' and 'git read-tree', read
|
'git ls-files' and 'git read-tree', read
|
||||||
`gitignore` patterns specified by command-line options, or from
|
`gitignore` patterns specified by command-line options, or from
|
||||||
files specified by command-line options. Higher-level git
|
files specified by command-line options. Higher-level Git
|
||||||
tools, such as 'git status' and 'git add',
|
tools, such as 'git status' and 'git add',
|
||||||
use patterns from the sources specified above.
|
use patterns from the sources specified above.
|
||||||
|
|
||||||
@ -89,15 +89,15 @@ PATTERN FORMAT
|
|||||||
a match with a directory. In other words, `foo/` will match a
|
a match with a directory. In other words, `foo/` will match a
|
||||||
directory `foo` and paths underneath it, but will not match a
|
directory `foo` and paths underneath it, but will not match a
|
||||||
regular file or a symbolic link `foo` (this is consistent
|
regular file or a symbolic link `foo` (this is consistent
|
||||||
with the way how pathspec works in general in git).
|
with the way how pathspec works in general in Git).
|
||||||
|
|
||||||
- If the pattern does not contain a slash '/', git treats it as
|
- If the pattern does not contain a slash '/', Git treats it as
|
||||||
a shell glob pattern and checks for a match against the
|
a shell glob pattern and checks for a match against the
|
||||||
pathname relative to the location of the `.gitignore` file
|
pathname relative to the location of the `.gitignore` file
|
||||||
(relative to the toplevel of the work tree if not from a
|
(relative to the toplevel of the work tree if not from a
|
||||||
`.gitignore` file).
|
`.gitignore` file).
|
||||||
|
|
||||||
- Otherwise, git treats the pattern as a shell glob suitable
|
- Otherwise, Git treats the pattern as a shell glob suitable
|
||||||
for consumption by fnmatch(3) with the FNM_PATHNAME flag:
|
for consumption by fnmatch(3) with the FNM_PATHNAME flag:
|
||||||
wildcards in the pattern will not match a / in the pathname.
|
wildcards in the pattern will not match a / in the pathname.
|
||||||
For example, "Documentation/{asterisk}.html" matches
|
For example, "Documentation/{asterisk}.html" matches
|
||||||
@ -131,7 +131,7 @@ NOTES
|
|||||||
-----
|
-----
|
||||||
|
|
||||||
The purpose of gitignore files is to ensure that certain files
|
The purpose of gitignore files is to ensure that certain files
|
||||||
not tracked by git remain untracked.
|
not tracked by Git remain untracked.
|
||||||
|
|
||||||
To ignore uncommitted changes in a file that is already tracked,
|
To ignore uncommitted changes in a file that is already tracked,
|
||||||
use 'git update-index {litdd}assume-unchanged'.
|
use 'git update-index {litdd}assume-unchanged'.
|
||||||
@ -179,7 +179,7 @@ Another example:
|
|||||||
$ echo '!/vmlinux*' >arch/foo/kernel/.gitignore
|
$ echo '!/vmlinux*' >arch/foo/kernel/.gitignore
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
The second .gitignore prevents git from ignoring
|
The second .gitignore prevents Git from ignoring
|
||||||
`arch/foo/kernel/vmlinux.lds.S`.
|
`arch/foo/kernel/vmlinux.lds.S`.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
|
@ -3,7 +3,7 @@ gitk(1)
|
|||||||
|
|
||||||
NAME
|
NAME
|
||||||
----
|
----
|
||||||
gitk - The git repository browser
|
gitk - The Git repository browser
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
--------
|
--------
|
||||||
@ -18,7 +18,7 @@ the files in the trees of each revision.
|
|||||||
|
|
||||||
Historically, gitk was the first repository browser. It's written in tcl/tk
|
Historically, gitk was the first repository browser. It's written in tcl/tk
|
||||||
and started off in a separate repository but was later merged into the main
|
and started off in a separate repository but was later merged into the main
|
||||||
git repository.
|
Git repository.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-------
|
-------
|
||||||
@ -108,10 +108,10 @@ SEE ALSO
|
|||||||
|
|
||||||
'gitview(1)'::
|
'gitview(1)'::
|
||||||
A repository browser written in Python using Gtk. It's based on
|
A repository browser written in Python using Gtk. It's based on
|
||||||
'bzrk(1)' and distributed in the contrib area of the git repository.
|
'bzrk(1)' and distributed in the contrib area of the Git repository.
|
||||||
|
|
||||||
'tig(1)'::
|
'tig(1)'::
|
||||||
A minimal repository browser and git tool output highlighter written
|
A minimal repository browser and Git tool output highlighter written
|
||||||
in C using Ncurses.
|
in C using Ncurses.
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
|
@ -13,7 +13,7 @@ $GIT_WORK_DIR/.gitmodules
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
The `.gitmodules` file, located in the top-level directory of a git
|
The `.gitmodules` file, located in the top-level directory of a Git
|
||||||
working tree, is a text file with a syntax matching the requirements
|
working tree, is a text file with a syntax matching the requirements
|
||||||
of linkgit:git-config[1].
|
of linkgit:git-config[1].
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ option of 'git submodule add'. Each submodule section also contains the
|
|||||||
following required keys:
|
following required keys:
|
||||||
|
|
||||||
submodule.<name>.path::
|
submodule.<name>.path::
|
||||||
Defines the path, relative to the top-level directory of the git
|
Defines the path, relative to the top-level directory of the Git
|
||||||
working tree, where the submodule is expected to be checked out.
|
working tree, where the submodule is expected to be checked out.
|
||||||
The path name must not end with a `/`. All submodule paths must
|
The path name must not end with a `/`. All submodule paths must
|
||||||
be unique within the .gitmodules file.
|
be unique within the .gitmodules file.
|
||||||
|
@ -29,7 +29,7 @@ prevent duplication between new objects added to the repositories
|
|||||||
without ongoing maintenance, while namespaces do.
|
without ongoing maintenance, while namespaces do.
|
||||||
|
|
||||||
To specify a namespace, set the `GIT_NAMESPACE` environment variable to
|
To specify a namespace, set the `GIT_NAMESPACE` environment variable to
|
||||||
the namespace. For each ref namespace, git stores the corresponding
|
the namespace. For each ref namespace, Git stores the corresponding
|
||||||
refs in a directory under `refs/namespaces/`. For example,
|
refs in a directory under `refs/namespaces/`. For example,
|
||||||
`GIT_NAMESPACE=foo` will store refs under `refs/namespaces/foo/`. You
|
`GIT_NAMESPACE=foo` will store refs under `refs/namespaces/foo/`. You
|
||||||
can also specify namespaces via the `--namespace` option to
|
can also specify namespaces via the `--namespace` option to
|
||||||
|
@ -12,12 +12,24 @@ $GIT_DIR/*
|
|||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
You may find these things in your git repository (`.git`
|
A Git repository comes in two different flavours:
|
||||||
directory for a repository associated with your working tree, or
|
|
||||||
`<project>.git` directory for a public 'bare' repository. It is
|
* a `.git` directory at the root of the working tree;
|
||||||
also possible to have a working tree where `.git` is a plain
|
|
||||||
ASCII file containing `gitdir: <path>`, i.e. the path to the
|
* a `<project>.git` directory that is a 'bare' repository
|
||||||
real git repository).
|
(i.e. without its own working tree), that is typically used for
|
||||||
|
exchanging histories with others by pushing into it and fetching
|
||||||
|
from it.
|
||||||
|
|
||||||
|
*Note*: Also you can have a plain text file `.git` at the root of
|
||||||
|
your working tree, containing `gitdir: <path>` to point at the real
|
||||||
|
directory that has the repository. This mechanism is often used for
|
||||||
|
a working tree of a submodule checkout, to allow you in the
|
||||||
|
containing superproject to `git checkout` a branch that does not
|
||||||
|
have the submodule. The `checkout` has to remove the entire
|
||||||
|
submodule working tree, without losing the submodule repository.
|
||||||
|
|
||||||
|
These things may exist in a Git repository.
|
||||||
|
|
||||||
objects::
|
objects::
|
||||||
Object store associated with this repository. Usually
|
Object store associated with this repository. Usually
|
||||||
@ -108,7 +120,7 @@ HEAD::
|
|||||||
A symref (see glossary) to the `refs/heads/` namespace
|
A symref (see glossary) to the `refs/heads/` namespace
|
||||||
describing the currently active branch. It does not mean
|
describing the currently active branch. It does not mean
|
||||||
much if the repository is not associated with any working tree
|
much if the repository is not associated with any working tree
|
||||||
(i.e. a 'bare' repository), but a valid git repository
|
(i.e. a 'bare' repository), but a valid Git repository
|
||||||
*must* have the HEAD file; some porcelains may use it to
|
*must* have the HEAD file; some porcelains may use it to
|
||||||
guess the designated "default" branch of the repository
|
guess the designated "default" branch of the repository
|
||||||
(usually 'master'). It is legal if the named branch
|
(usually 'master'). It is legal if the named branch
|
||||||
@ -131,7 +143,7 @@ branches::
|
|||||||
and not likely to be found in modern repositories.
|
and not likely to be found in modern repositories.
|
||||||
|
|
||||||
hooks::
|
hooks::
|
||||||
Hooks are customization scripts used by various git
|
Hooks are customization scripts used by various Git
|
||||||
commands. A handful of sample hooks are installed when
|
commands. A handful of sample hooks are installed when
|
||||||
'git init' is run, but all of them are disabled by
|
'git init' is run, but all of them are disabled by
|
||||||
default. To enable, the `.sample` suffix has to be
|
default. To enable, the `.sample` suffix has to be
|
||||||
@ -169,7 +181,7 @@ info/exclude::
|
|||||||
This file, by convention among Porcelains, stores the
|
This file, by convention among Porcelains, stores the
|
||||||
exclude pattern list. `.gitignore` is the per-directory
|
exclude pattern list. `.gitignore` is the per-directory
|
||||||
ignore file. 'git status', 'git add', 'git rm' and
|
ignore file. 'git status', 'git add', 'git rm' and
|
||||||
'git clean' look at it but the core git commands do not look
|
'git clean' look at it but the core Git commands do not look
|
||||||
at it. See also: linkgit:gitignore[5].
|
at it. See also: linkgit:gitignore[5].
|
||||||
|
|
||||||
remotes::
|
remotes::
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user