1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1//EN"
3 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en">
6 <meta http-equiv=
"Content-Type" content=
"application/xhtml+xml; charset=UTF-8" />
7 <meta name=
"generator" content=
"AsciiDoc 10.2.0" />
9 <style type=
"text/css">
10 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */
14 font-family: Georgia,serif;
18 h1, h2, h3, h4, h5, h6,
19 div.title, caption.title,
20 thead, p.table.header,
22 #author, #revnumber, #revdate, #revremark,
24 font-family: Arial,Helvetica,sans-serif;
28 margin:
1em
5%
1em
5%;
33 text-decoration: underline;
49 h1, h2, h3, h4, h5, h6 {
57 border-bottom:
2px solid silver;
77 border:
1px solid silver;
88 ul
> li { color: #aaa; }
89 ul
> li
> * { color: black; }
91 .monospaced, code, pre {
92 font-family:
"Courier New", Courier, monospace;
99 white-space: pre-wrap;
109 #revnumber, #revdate, #revremark {
114 border-top:
2px solid silver;
120 padding-bottom:
0.5em;
124 padding-bottom:
0.5em;
129 margin-bottom:
1.5em;
131 div.imageblock, div.exampleblock, div.verseblock,
132 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
133 div.admonitionblock {
135 margin-bottom:
1.5em;
137 div.admonitionblock {
139 margin-bottom:
2.0em;
144 div.content { /* Block element content. */
148 /* Block element titles. */
149 div.title, caption.title {
154 margin-bottom:
0.5em;
160 td div.title:first-child {
163 div.content div.title:first-child {
166 div.content + div.title {
170 div.sidebarblock
> div.content {
172 border:
1px solid #dddddd;
173 border-left:
4px solid #f0f0f0;
177 div.listingblock
> div.content {
178 border:
1px solid #dddddd;
179 border-left:
5px solid #f0f0f0;
184 div.quoteblock, div.verseblock {
188 border-left:
5px solid #f0f0f0;
192 div.quoteblock
> div.attribution {
197 div.verseblock
> pre.content {
198 font-family: inherit;
201 div.verseblock
> div.attribution {
205 /* DEPRECATED: Pre version
8.2.7 verse style literal block. */
206 div.verseblock + div.attribution {
210 div.admonitionblock .icon {
214 text-decoration: underline;
216 padding-right:
0.5em;
218 div.admonitionblock td.content {
220 border-left:
3px solid #dddddd;
223 div.exampleblock
> div.content {
224 border-left:
3px solid #dddddd;
228 div.imageblock div.content { padding-left:
0; }
229 span.image img { border-style: none; vertical-align: text-bottom; }
230 a.image:visited { color: white; }
234 margin-bottom:
0.8em;
247 list-style-position: outside;
250 list-style-type: decimal;
253 list-style-type: lower-alpha;
256 list-style-type: upper-alpha;
259 list-style-type: lower-roman;
262 list-style-type: upper-roman;
265 div.compact ul, div.compact ol,
266 div.compact p, div.compact p,
267 div.compact div, div.compact div {
269 margin-bottom:
0.1em;
281 margin-bottom:
0.8em;
284 padding-bottom:
15px;
286 dt.hdlist1.strong, td.hdlist1.strong {
292 padding-right:
0.8em;
298 div.hdlist.compact tr {
307 .footnote, .footnoteref {
311 span.footnote, span.footnoteref {
312 vertical-align: super;
316 margin:
20px
0 20px
0;
320 #footnotes div.footnote {
326 border-top:
1px solid silver;
335 padding-right:
0.5em;
336 padding-bottom:
0.3em;
344 #footer-badges { display: none; }
348 margin-bottom:
2.5em;
356 margin-bottom:
0.1em;
359 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
376 span.aqua { color: aqua; }
377 span.black { color: black; }
378 span.blue { color: blue; }
379 span.fuchsia { color: fuchsia; }
380 span.gray { color: gray; }
381 span.green { color: green; }
382 span.lime { color: lime; }
383 span.maroon { color: maroon; }
384 span.navy { color: navy; }
385 span.olive { color: olive; }
386 span.purple { color: purple; }
387 span.red { color: red; }
388 span.silver { color: silver; }
389 span.teal { color: teal; }
390 span.white { color: white; }
391 span.yellow { color: yellow; }
393 span.aqua-background { background: aqua; }
394 span.black-background { background: black; }
395 span.blue-background { background: blue; }
396 span.fuchsia-background { background: fuchsia; }
397 span.gray-background { background: gray; }
398 span.green-background { background: green; }
399 span.lime-background { background: lime; }
400 span.maroon-background { background: maroon; }
401 span.navy-background { background: navy; }
402 span.olive-background { background: olive; }
403 span.purple-background { background: purple; }
404 span.red-background { background: red; }
405 span.silver-background { background: silver; }
406 span.teal-background { background: teal; }
407 span.white-background { background: white; }
408 span.yellow-background { background: yellow; }
410 span.big { font-size:
2em; }
411 span.small { font-size:
0.6em; }
413 span.underline { text-decoration: underline; }
414 span.overline { text-decoration: overline; }
415 span.line-through { text-decoration: line-through; }
417 div.unbreakable { page-break-inside: avoid; }
427 margin-bottom:
1.5em;
429 div.tableblock
> table {
430 border:
3px solid #
527bbd;
432 thead, p.table.header {
439 /* Because the table frame attribute is overridden by CSS in most browsers. */
440 div.tableblock
> table[
frame=
"void"] {
443 div.tableblock
> table[
frame=
"hsides"] {
444 border-left-style: none;
445 border-right-style: none;
447 div.tableblock
> table[
frame=
"vsides"] {
448 border-top-style: none;
449 border-bottom-style: none;
460 margin-bottom:
1.5em;
462 thead, p.tableblock.header {
473 border-color: #
527bbd;
474 border-collapse: collapse;
476 th.tableblock, td.tableblock {
480 border-color: #
527bbd;
483 table.tableblock.frame-topbot {
484 border-left-style: hidden;
485 border-right-style: hidden;
487 table.tableblock.frame-sides {
488 border-top-style: hidden;
489 border-bottom-style: hidden;
491 table.tableblock.frame-none {
492 border-style: hidden;
495 th.tableblock.halign-left, td.tableblock.halign-left {
498 th.tableblock.halign-center, td.tableblock.halign-center {
501 th.tableblock.halign-right, td.tableblock.halign-right {
505 th.tableblock.valign-top, td.tableblock.valign-top {
508 th.tableblock.valign-middle, td.tableblock.valign-middle {
509 vertical-align: middle;
511 th.tableblock.valign-bottom, td.tableblock.valign-bottom {
512 vertical-align: bottom;
523 padding-bottom:
0.5em;
524 border-top:
2px solid silver;
525 border-bottom:
2px solid silver;
530 body.manpage div.sectionbody {
535 body.manpage div#toc { display: none; }
540 <script type=
"text/javascript">
542 var asciidoc = { // Namespace.
544 /////////////////////////////////////////////////////////////////////
545 // Table Of Contents generator
546 /////////////////////////////////////////////////////////////////////
548 /* Author: Mihai Bazon, September
2002
549 * http://students.infoiasi.ro/~mishoo
551 * Table Of Content generator
554 * Feel free to use this script under the terms of the GNU General Public
555 * License, as long as you do not remove or alter this notice.
558 /* modified by Troy D. Hanson, September
2006. License: GPL */
559 /* modified by Stuart Rackham,
2006,
2009. License: GPL */
562 toc: function (toclevels) {
564 function getText(el) {
566 for (var i = el.firstChild; i != null; i = i.nextSibling) {
567 if (i.nodeType ==
3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
569 else if (i.firstChild != null)
575 function TocEntry(el, text, toclevel) {
578 this.toclevel = toclevel;
581 function tocEntries(el, toclevels) {
582 var result = new Array;
583 var re = new RegExp('[hH]([
1-'+(toclevels+
1)+'])');
584 // Function that scans the DOM tree for header elements (the DOM2
585 // nodeIterator API would be a better technique but not supported by all
587 var iterate = function (el) {
588 for (var i = el.firstChild; i != null; i = i.nextSibling) {
589 if (i.nodeType ==
1 /* Node.ELEMENT_NODE */) {
590 var mo = re.exec(i.tagName);
591 if (mo && (i.getAttribute(
"class") || i.getAttribute(
"className")) !=
"float") {
592 result[result.length] = new TocEntry(i, getText(i), mo[
1]-
1);
602 var toc = document.getElementById(
"toc");
607 // Delete existing TOC entries in case we're reloading the TOC.
608 var tocEntriesToRemove = [];
610 for (i =
0; i < toc.childNodes.length; i++) {
611 var entry = toc.childNodes[i];
612 if (entry.nodeName.toLowerCase() == 'div'
613 && entry.getAttribute(
"class")
614 && entry.getAttribute(
"class").match(/^toclevel/))
615 tocEntriesToRemove.push(entry);
617 for (i =
0; i < tocEntriesToRemove.length; i++) {
618 toc.removeChild(tocEntriesToRemove[i]);
621 // Rebuild TOC entries.
622 var entries = tocEntries(document.getElementById(
"content"), toclevels);
623 for (var i =
0; i < entries.length; ++i) {
624 var entry = entries[i];
625 if (entry.element.id ==
"")
626 entry.element.id =
"_toc_" + i;
627 var a = document.createElement(
"a");
628 a.href =
"#" + entry.element.id;
629 a.appendChild(document.createTextNode(entry.text));
630 var div = document.createElement(
"div");
632 div.className =
"toclevel" + entry.toclevel;
633 toc.appendChild(div);
635 if (entries.length ==
0)
636 toc.parentNode.removeChild(toc);
640 /////////////////////////////////////////////////////////////////////
641 // Footnotes generator
642 /////////////////////////////////////////////////////////////////////
644 /* Based on footnote generation code from:
645 * http://www.brandspankingnew.net/archive/
2005/
07/format_footnote.html
648 footnotes: function () {
649 // Delete existing footnote entries in case we're reloading the footnodes.
651 var noteholder = document.getElementById(
"footnotes");
655 var entriesToRemove = [];
656 for (i =
0; i < noteholder.childNodes.length; i++) {
657 var entry = noteholder.childNodes[i];
658 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute(
"class") ==
"footnote")
659 entriesToRemove.push(entry);
661 for (i =
0; i < entriesToRemove.length; i++) {
662 noteholder.removeChild(entriesToRemove[i]);
665 // Rebuild footnote entries.
666 var cont = document.getElementById(
"content");
667 var spans = cont.getElementsByTagName(
"span");
670 for (i=
0; i
<spans.length; i++) {
671 if (spans[i].className ==
"footnote") {
673 var note = spans[i].getAttribute(
"data-note");
675 // Use [\s\S] in place of . so multi-line matches work.
676 // Because JavaScript has no s (dotall) regex flag.
677 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[
1];
679 "[<a id='_footnoteref_" + n +
"' href='#_footnote_" + n +
680 "' title='View footnote' class='footnote'>" + n +
"</a>]";
681 spans[i].setAttribute(
"data-note", note);
683 noteholder.innerHTML +=
684 "<div class='footnote' id='_footnote_" + n +
"'>" +
685 "<a href='#_footnoteref_" + n +
"' title='Return to text'>" +
686 n +
"</a>. " + note +
"</div>";
687 var id =spans[i].getAttribute(
"id");
688 if (id != null) refs[
"#"+id] = n;
692 noteholder.parentNode.removeChild(noteholder);
694 // Process footnoterefs.
695 for (i=
0; i
<spans.length; i++) {
696 if (spans[i].className ==
"footnoteref") {
697 var href = spans[i].getElementsByTagName(
"a")[
0].getAttribute(
"href");
698 href = href.match(/#.*/)[
0]; // Because IE return full URL.
701 "[<a href='#_footnote_" + n +
702 "' title='View footnote' class='footnote'>" + n +
"</a>]";
708 install: function(toclevels) {
711 function reinstall() {
712 asciidoc.footnotes();
714 asciidoc.toc(toclevels);
718 function reinstallAndRemoveTimer() {
719 clearInterval(timerId);
723 timerId = setInterval(reinstall,
500);
724 if (document.addEventListener)
725 document.addEventListener(
"DOMContentLoaded", reinstallAndRemoveTimer, false);
727 window.onload = reinstallAndRemoveTimer;
735 <body class=
"manpage">
741 <div class=
"sectionbody">
743 the stupid content tracker
749 <h2 id=
"_synopsis">SYNOPSIS
</h2>
750 <div class=
"sectionbody">
751 <div class=
"verseblock">
752 <pre class=
"content"><em>git
</em> [-v | --version] [-h | --help] [-C
<path
>] [-c
<name
>=
<value
>]
753 [--exec-path[=
<path
>]] [--html-path] [--man-path] [--info-path]
754 [-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]
755 [--git-dir=
<path
>] [--work-tree=
<path
>] [--namespace=
<name
>]
756 [--config-env=
<name
>=
<envvar
>]
<command
> [
<args
>]
</pre>
757 <div class=
"attribution">
762 <h2 id=
"_description">DESCRIPTION
</h2>
763 <div class=
"sectionbody">
764 <div class=
"paragraph"><p>Git is a fast, scalable, distributed revision control system with an
765 unusually rich command set that provides both high-level operations
766 and full access to internals.
</p></div>
767 <div class=
"paragraph"><p>See
<a href=
"gittutorial.html">gittutorial(
7)
</a> to get started, then see
768 <a href=
"giteveryday.html">giteveryday(
7)
</a> for a useful minimum set of
769 commands. The
<a href=
"user-manual.html">Git User
’s Manual
</a> has a more
770 in-depth introduction.
</p></div>
771 <div class=
"paragraph"><p>After you mastered the basic concepts, you can come back to this
772 page to learn what commands Git offers. You can learn more about
773 individual Git commands with
"git help command".
<a href=
"gitcli.html">gitcli(
7)
</a>
774 manual page gives you an overview of the command-line command syntax.
</p></div>
775 <div class=
"paragraph"><p>A formatted and hyperlinked copy of the latest Git documentation
776 can be viewed at
<a href=
"https://git.github.io/htmldocs/git.html">https://git.github.io/htmldocs/git.html
</a>
777 or
<a href=
"https://git-scm.com/docs">https://git-scm.com/docs
</a>.
</p></div>
781 <h2 id=
"_options">OPTIONS
</h2>
782 <div class=
"sectionbody">
783 <div class=
"dlist"><dl>
792 Prints the Git suite version that the
<em>git
</em> program came from.
794 <div class=
"paragraph"><p>This option is internally converted to
<code>git version ...
</code> and accepts
795 the same options as the
<a href=
"git-version.html">git-version(
1)
</a> command. If
<code>--help
</code> is
796 also given, it takes precedence over
<code>--version
</code>.
</p></div>
806 Prints the synopsis and a list of the most commonly used
807 commands. If the option
<code>--all
</code> or
<code>-a
</code> is given then all
808 available commands are printed. If a Git command is named this
809 option will bring up the manual page for that command.
811 <div class=
"paragraph"><p>Other options are available to control how the manual page is
812 displayed. See
<a href=
"git-help.html">git-help(
1)
</a> for more information,
813 because
<code>git --help ...
</code> is converted internally into
<code>git
814 help ...
</code>.
</p></div>
821 Run as if git was started in
<em><path
></em> instead of the current working
822 directory. When multiple
<code>-C
</code> options are given, each subsequent
823 non-absolute
<code>-C
<path
></code> is interpreted relative to the preceding
<code>-C
824 <path
></code>. If
<em><path
></em> is present but empty, e.g.
<code>-C
""</code>, then the
825 current working directory is left unchanged.
827 <div class=
"paragraph"><p>This option affects options that expect path name like
<code>--git-dir
</code> and
828 <code>--work-tree
</code> in that their interpretations of the path names would be
829 made relative to the working directory caused by the
<code>-C
</code> option. For
830 example the following invocations are equivalent:
</p></div>
831 <div class=
"literalblock">
832 <div class=
"content">
833 <pre><code>git --git-dir=a.git --work-tree=b -C c status
834 git --git-dir=c/a.git --work-tree=c/b status
</code></pre>
838 -c
<name
>=
<value
>
842 Pass a configuration parameter to the command. The value
843 given will override values from configuration files.
844 The
<name
> is expected in the same format as listed by
845 <em>git config
</em> (subkeys separated by dots).
847 <div class=
"paragraph"><p>Note that omitting the
<code>=
</code> in
<code>git -c foo.bar ...
</code> is allowed and sets
848 <code>foo.bar
</code> to the boolean true value (just like
<code>[foo]bar
</code> would in a
849 config file). Including the equals but with an empty value (like
<code>git -c
850 foo.bar= ...
</code>) sets
<code>foo.bar
</code> to the empty string which
<code>git config
851 --type=bool
</code> will convert to
<code>false
</code>.
</p></div>
854 --config-env=
<name
>=
<envvar
>
858 Like
<code>-c
<name
>=
<value
></code>, give configuration variable
859 <em><name
></em> a value, where
<envvar
> is the name of an
860 environment variable from which to retrieve the value. Unlike
861 <code>-c
</code> there is no shortcut for directly setting the value to an
862 empty string, instead the environment variable itself must be
863 set to the empty string. It is an error if the
<code><envvar
></code> does not exist
864 in the environment.
<code><envvar
></code> may not contain an equals sign
865 to avoid ambiguity with
<code><name
></code> containing one.
867 <div class=
"paragraph"><p>This is useful for cases where you want to pass transitory
868 configuration options to git, but are doing so on operating systems
869 where other processes might be able to read your command line
870 (e.g.
<code>/proc/self/cmdline
</code>), but not your environment
871 (e.g.
<code>/proc/self/environ
</code>). That behavior is the default on
872 Linux, but may not be on your system.
</p></div>
873 <div class=
"paragraph"><p>Note that this might add security for variables such as
874 <code>http.extraHeader
</code> where the sensitive information is part of
875 the value, but not e.g.
<code>url.
<base
>.insteadOf
</code> where the
876 sensitive information can be part of the key.
</p></div>
879 --exec-path[=
<path
>]
883 Path to wherever your core Git programs are installed.
884 This can also be controlled by setting the GIT_EXEC_PATH
885 environment variable. If no path is given,
<em>git
</em> will print
886 the current setting and then exit.
894 Print the path, without trailing slash, where Git
’s HTML
895 documentation is installed and exit.
903 Print the manpath (see
<code>man(
1)
</code>) for the man pages for
904 this version of Git and exit.
912 Print the path where the Info files documenting this
913 version of Git are installed and exit.
924 Pipe all output into
<em>less
</em> (or if set, $PAGER) if standard
925 output is a terminal. This overrides the
<code>pager.
<cmd
></code>
926 configuration options (see the
"Configuration Mechanism" section
938 Do not pipe Git output into a pager.
942 --git-dir=
<path
>
946 Set the path to the repository (
".git" directory). This can also be
947 controlled by setting the
<code>GIT_DIR
</code> environment variable. It can be
948 an absolute path or relative path to current working directory.
950 <div class=
"paragraph"><p>Specifying the location of the
".git" directory using this
951 option (or
<code>GIT_DIR
</code> environment variable) turns off the
952 repository discovery that tries to find a directory with
953 ".git" subdirectory (which is how the repository and the
954 top-level of the working tree are discovered), and tells Git
955 that you are at the top level of the working tree. If you
956 are not at the top-level directory of the working tree, you
957 should tell Git where the top-level of the working tree is,
958 with the
<code>--work-tree=
<path
></code> option (or
<code>GIT_WORK_TREE
</code>
959 environment variable)
</p></div>
960 <div class=
"paragraph"><p>If you just want to run git as if it was started in
<code><path
></code> then use
961 <code>git -C
<path
></code>.
</p></div>
964 --work-tree=
<path
>
968 Set the path to the working tree. It can be an absolute path
969 or a path relative to the current working directory.
970 This can also be controlled by setting the GIT_WORK_TREE
971 environment variable and the core.worktree configuration
972 variable (see core.worktree in
<a href=
"git-config.html">git-config(
1)
</a> for a
973 more detailed discussion).
977 --namespace=
<path
>
981 Set the Git namespace. See
<a href=
"gitnamespaces.html">gitnamespaces(
7)
</a> for more
982 details. Equivalent to setting the
<code>GIT_NAMESPACE
</code> environment
991 Treat the repository as a bare repository. If GIT_DIR
992 environment is not set, it is set to the current working
1001 Do not use replacement refs to replace Git objects. See
1002 <a href=
"git-replace.html">git-replace(
1)
</a> for more information.
1005 <dt class=
"hdlist1">
1010 Treat pathspecs literally (i.e. no globbing, no pathspec magic).
1011 This is equivalent to setting the
<code>GIT_LITERAL_PATHSPECS
</code> environment
1012 variable to
<code>1</code>.
1015 <dt class=
"hdlist1">
1020 Add
"glob" magic to all pathspec. This is equivalent to setting
1021 the
<code>GIT_GLOB_PATHSPECS
</code> environment variable to
<code>1</code>. Disabling
1022 globbing on individual pathspecs can be done using pathspec
1026 <dt class=
"hdlist1">
1031 Add
"literal" magic to all pathspec. This is equivalent to setting
1032 the
<code>GIT_NOGLOB_PATHSPECS
</code> environment variable to
<code>1</code>. Enabling
1033 globbing on individual pathspecs can be done using pathspec
1037 <dt class=
"hdlist1">
1042 Add
"icase" magic to all pathspec. This is equivalent to setting
1043 the
<code>GIT_ICASE_PATHSPECS
</code> environment variable to
<code>1</code>.
1046 <dt class=
"hdlist1">
1051 Do not perform optional operations that require locks. This is
1052 equivalent to setting the
<code>GIT_OPTIONAL_LOCKS
</code> to
<code>0</code>.
1055 <dt class=
"hdlist1">
1056 --list-cmds=group[,group
…]
1060 List commands by group. This is an internal/experimental
1061 option and may change or be removed in the future. Supported
1062 groups are: builtins, parseopt (builtin commands that use
1063 parse-options), main (all commands in libexec directory),
1064 others (all other commands in
<code>$PATH
</code> that have git- prefix),
1065 list-
<category
> (see categories in command-list.txt),
1066 nohelpers (exclude helper commands), alias and config
1067 (retrieve command list from config variable completion.commands)
1070 <dt class=
"hdlist1">
1071 --attr-source=
<tree-ish
>
1075 Read gitattributes from
<tree-ish
> instead of the worktree. See
1076 <a href=
"gitattributes.html">gitattributes(
5)
</a>. This is equivalent to setting the
1077 <code>GIT_ATTR_SOURCE
</code> environment variable.
1084 <h2 id=
"_git_commands">GIT COMMANDS
</h2>
1085 <div class=
"sectionbody">
1086 <div class=
"paragraph"><p>We divide Git into high level (
"porcelain") commands and low level
1087 (
"plumbing") commands.
</p></div>
1091 <h2 id=
"_high_level_commands_porcelain">High-level commands (porcelain)
</h2>
1092 <div class=
"sectionbody">
1093 <div class=
"paragraph"><p>We separate the porcelain commands into the main commands and some
1094 ancillary user utilities.
</p></div>
1096 <h3 id=
"_main_porcelain_commands">Main porcelain commands
</h3>
1097 <div class=
"dlist"><dl>
1098 <dt class=
"hdlist1">
1099 <a href=
"git-add.html">git-add(
1)
</a>
1103 Add file contents to the index.
1106 <dt class=
"hdlist1">
1107 <a href=
"git-am.html">git-am(
1)
</a>
1111 Apply a series of patches from a mailbox.
1114 <dt class=
"hdlist1">
1115 <a href=
"git-archive.html">git-archive(
1)
</a>
1119 Create an archive of files from a named tree.
1122 <dt class=
"hdlist1">
1123 <a href=
"git-bisect.html">git-bisect(
1)
</a>
1127 Use binary search to find the commit that introduced a bug.
1130 <dt class=
"hdlist1">
1131 <a href=
"git-branch.html">git-branch(
1)
</a>
1135 List, create, or delete branches.
1138 <dt class=
"hdlist1">
1139 <a href=
"git-bundle.html">git-bundle(
1)
</a>
1143 Move objects and refs by archive.
1146 <dt class=
"hdlist1">
1147 <a href=
"git-checkout.html">git-checkout(
1)
</a>
1151 Switch branches or restore working tree files.
1154 <dt class=
"hdlist1">
1155 <a href=
"git-cherry-pick.html">git-cherry-pick(
1)
</a>
1159 Apply the changes introduced by some existing commits.
1162 <dt class=
"hdlist1">
1163 <a href=
"git-citool.html">git-citool(
1)
</a>
1167 Graphical alternative to git-commit.
1170 <dt class=
"hdlist1">
1171 <a href=
"git-clean.html">git-clean(
1)
</a>
1175 Remove untracked files from the working tree.
1178 <dt class=
"hdlist1">
1179 <a href=
"git-clone.html">git-clone(
1)
</a>
1183 Clone a repository into a new directory.
1186 <dt class=
"hdlist1">
1187 <a href=
"git-commit.html">git-commit(
1)
</a>
1191 Record changes to the repository.
1194 <dt class=
"hdlist1">
1195 <a href=
"git-describe.html">git-describe(
1)
</a>
1199 Give an object a human readable name based on an available ref.
1202 <dt class=
"hdlist1">
1203 <a href=
"git-diff.html">git-diff(
1)
</a>
1207 Show changes between commits, commit and working tree, etc.
1210 <dt class=
"hdlist1">
1211 <a href=
"git-fetch.html">git-fetch(
1)
</a>
1215 Download objects and refs from another repository.
1218 <dt class=
"hdlist1">
1219 <a href=
"git-format-patch.html">git-format-patch(
1)
</a>
1223 Prepare patches for e-mail submission.
1226 <dt class=
"hdlist1">
1227 <a href=
"git-gc.html">git-gc(
1)
</a>
1231 Cleanup unnecessary files and optimize the local repository.
1234 <dt class=
"hdlist1">
1235 <a href=
"git-grep.html">git-grep(
1)
</a>
1239 Print lines matching a pattern.
1242 <dt class=
"hdlist1">
1243 <a href=
"git-gui.html">git-gui(
1)
</a>
1247 A portable graphical interface to Git.
1250 <dt class=
"hdlist1">
1251 <a href=
"git-init.html">git-init(
1)
</a>
1255 Create an empty Git repository or reinitialize an existing one.
1258 <dt class=
"hdlist1">
1259 <a href=
"git-log.html">git-log(
1)
</a>
1266 <dt class=
"hdlist1">
1267 <a href=
"git-maintenance.html">git-maintenance(
1)
</a>
1271 Run tasks to optimize Git repository data.
1274 <dt class=
"hdlist1">
1275 <a href=
"git-merge.html">git-merge(
1)
</a>
1279 Join two or more development histories together.
1282 <dt class=
"hdlist1">
1283 <a href=
"git-mv.html">git-mv(
1)
</a>
1287 Move or rename a file, a directory, or a symlink.
1290 <dt class=
"hdlist1">
1291 <a href=
"git-notes.html">git-notes(
1)
</a>
1295 Add or inspect object notes.
1298 <dt class=
"hdlist1">
1299 <a href=
"git-pull.html">git-pull(
1)
</a>
1303 Fetch from and integrate with another repository or a local branch.
1306 <dt class=
"hdlist1">
1307 <a href=
"git-push.html">git-push(
1)
</a>
1311 Update remote refs along with associated objects.
1314 <dt class=
"hdlist1">
1315 <a href=
"git-range-diff.html">git-range-diff(
1)
</a>
1319 Compare two commit ranges (e.g. two versions of a branch).
1322 <dt class=
"hdlist1">
1323 <a href=
"git-rebase.html">git-rebase(
1)
</a>
1327 Reapply commits on top of another base tip.
1330 <dt class=
"hdlist1">
1331 <a href=
"git-reset.html">git-reset(
1)
</a>
1335 Reset current HEAD to the specified state.
1338 <dt class=
"hdlist1">
1339 <a href=
"git-restore.html">git-restore(
1)
</a>
1343 Restore working tree files.
1346 <dt class=
"hdlist1">
1347 <a href=
"git-revert.html">git-revert(
1)
</a>
1351 Revert some existing commits.
1354 <dt class=
"hdlist1">
1355 <a href=
"git-rm.html">git-rm(
1)
</a>
1359 Remove files from the working tree and from the index.
1362 <dt class=
"hdlist1">
1363 <a href=
"git-shortlog.html">git-shortlog(
1)
</a>
1367 Summarize
<em>git log
</em> output.
1370 <dt class=
"hdlist1">
1371 <a href=
"git-show.html">git-show(
1)
</a>
1375 Show various types of objects.
1378 <dt class=
"hdlist1">
1379 <a href=
"git-sparse-checkout.html">git-sparse-checkout(
1)
</a>
1383 Reduce your working tree to a subset of tracked files.
1386 <dt class=
"hdlist1">
1387 <a href=
"git-stash.html">git-stash(
1)
</a>
1391 Stash the changes in a dirty working directory away.
1394 <dt class=
"hdlist1">
1395 <a href=
"git-status.html">git-status(
1)
</a>
1399 Show the working tree status.
1402 <dt class=
"hdlist1">
1403 <a href=
"git-submodule.html">git-submodule(
1)
</a>
1407 Initialize, update or inspect submodules.
1410 <dt class=
"hdlist1">
1411 <a href=
"git-switch.html">git-switch(
1)
</a>
1418 <dt class=
"hdlist1">
1419 <a href=
"git-tag.html">git-tag(
1)
</a>
1423 Create, list, delete or verify a tag object signed with GPG.
1426 <dt class=
"hdlist1">
1427 <a href=
"git-worktree.html">git-worktree(
1)
</a>
1431 Manage multiple working trees.
1434 <dt class=
"hdlist1">
1435 <a href=
"gitk.html">gitk(
1)
</a>
1439 The Git repository browser.
1442 <dt class=
"hdlist1">
1443 <a href=
"scalar.html">scalar(
1)
</a>
1447 A tool for managing large Git repositories.
1453 <h3 id=
"_ancillary_commands">Ancillary Commands
</h3>
1454 <div class=
"paragraph"><p>Manipulators:
</p></div>
1455 <div class=
"dlist"><dl>
1456 <dt class=
"hdlist1">
1457 <a href=
"git-config.html">git-config(
1)
</a>
1461 Get and set repository or global options.
1464 <dt class=
"hdlist1">
1465 <a href=
"git-fast-export.html">git-fast-export(
1)
</a>
1472 <dt class=
"hdlist1">
1473 <a href=
"git-fast-import.html">git-fast-import(
1)
</a>
1477 Backend for fast Git data importers.
1480 <dt class=
"hdlist1">
1481 <a href=
"git-filter-branch.html">git-filter-branch(
1)
</a>
1488 <dt class=
"hdlist1">
1489 <a href=
"git-mergetool.html">git-mergetool(
1)
</a>
1493 Run merge conflict resolution tools to resolve merge conflicts.
1496 <dt class=
"hdlist1">
1497 <a href=
"git-pack-refs.html">git-pack-refs(
1)
</a>
1501 Pack heads and tags for efficient repository access.
1504 <dt class=
"hdlist1">
1505 <a href=
"git-prune.html">git-prune(
1)
</a>
1509 Prune all unreachable objects from the object database.
1512 <dt class=
"hdlist1">
1513 <a href=
"git-reflog.html">git-reflog(
1)
</a>
1517 Manage reflog information.
1520 <dt class=
"hdlist1">
1521 <a href=
"git-remote.html">git-remote(
1)
</a>
1525 Manage set of tracked repositories.
1528 <dt class=
"hdlist1">
1529 <a href=
"git-repack.html">git-repack(
1)
</a>
1533 Pack unpacked objects in a repository.
1536 <dt class=
"hdlist1">
1537 <a href=
"git-replace.html">git-replace(
1)
</a>
1541 Create, list, delete refs to replace objects.
1545 <div class=
"paragraph"><p>Interrogators:
</p></div>
1546 <div class=
"dlist"><dl>
1547 <dt class=
"hdlist1">
1548 <a href=
"git-annotate.html">git-annotate(
1)
</a>
1552 Annotate file lines with commit information.
1555 <dt class=
"hdlist1">
1556 <a href=
"git-blame.html">git-blame(
1)
</a>
1560 Show what revision and author last modified each line of a file.
1563 <dt class=
"hdlist1">
1564 <a href=
"git-bugreport.html">git-bugreport(
1)
</a>
1568 Collect information for user to file a bug report.
1571 <dt class=
"hdlist1">
1572 <a href=
"git-count-objects.html">git-count-objects(
1)
</a>
1576 Count unpacked number of objects and their disk consumption.
1579 <dt class=
"hdlist1">
1580 <a href=
"git-diagnose.html">git-diagnose(
1)
</a>
1584 Generate a zip archive of diagnostic information.
1587 <dt class=
"hdlist1">
1588 <a href=
"git-difftool.html">git-difftool(
1)
</a>
1592 Show changes using common diff tools.
1595 <dt class=
"hdlist1">
1596 <a href=
"git-fsck.html">git-fsck(
1)
</a>
1600 Verifies the connectivity and validity of the objects in the database.
1603 <dt class=
"hdlist1">
1604 <a href=
"git-help.html">git-help(
1)
</a>
1608 Display help information about Git.
1611 <dt class=
"hdlist1">
1612 <a href=
"git-instaweb.html">git-instaweb(
1)
</a>
1616 Instantly browse your working repository in gitweb.
1619 <dt class=
"hdlist1">
1620 <a href=
"git-merge-tree.html">git-merge-tree(
1)
</a>
1624 Perform merge without touching index or working tree.
1627 <dt class=
"hdlist1">
1628 <a href=
"git-rerere.html">git-rerere(
1)
</a>
1632 Reuse recorded resolution of conflicted merges.
1635 <dt class=
"hdlist1">
1636 <a href=
"git-show-branch.html">git-show-branch(
1)
</a>
1640 Show branches and their commits.
1643 <dt class=
"hdlist1">
1644 <a href=
"git-verify-commit.html">git-verify-commit(
1)
</a>
1648 Check the GPG signature of commits.
1651 <dt class=
"hdlist1">
1652 <a href=
"git-verify-tag.html">git-verify-tag(
1)
</a>
1656 Check the GPG signature of tags.
1659 <dt class=
"hdlist1">
1660 <a href=
"git-version.html">git-version(
1)
</a>
1664 Display version information about Git.
1667 <dt class=
"hdlist1">
1668 <a href=
"git-whatchanged.html">git-whatchanged(
1)
</a>
1672 Show logs with differences each commit introduces.
1675 <dt class=
"hdlist1">
1676 <a href=
"gitweb.html">gitweb(
1)
</a>
1680 Git web interface (web frontend to Git repositories).
1686 <h3 id=
"_interacting_with_others">Interacting with Others
</h3>
1687 <div class=
"paragraph"><p>These commands are to interact with foreign SCM and with other
1688 people via patch over e-mail.
</p></div>
1689 <div class=
"dlist"><dl>
1690 <dt class=
"hdlist1">
1691 <a href=
"git-archimport.html">git-archimport(
1)
</a>
1695 Import a GNU Arch repository into Git.
1698 <dt class=
"hdlist1">
1699 <a href=
"git-cvsexportcommit.html">git-cvsexportcommit(
1)
</a>
1703 Export a single commit to a CVS checkout.
1706 <dt class=
"hdlist1">
1707 <a href=
"git-cvsimport.html">git-cvsimport(
1)
</a>
1711 Salvage your data out of another SCM people love to hate.
1714 <dt class=
"hdlist1">
1715 <a href=
"git-cvsserver.html">git-cvsserver(
1)
</a>
1719 A CVS server emulator for Git.
1722 <dt class=
"hdlist1">
1723 <a href=
"git-imap-send.html">git-imap-send(
1)
</a>
1727 Send a collection of patches from stdin to an IMAP folder.
1730 <dt class=
"hdlist1">
1731 <a href=
"git-p4.html">git-p4(
1)
</a>
1735 Import from and submit to Perforce repositories.
1738 <dt class=
"hdlist1">
1739 <a href=
"git-quiltimport.html">git-quiltimport(
1)
</a>
1743 Applies a quilt patchset onto the current branch.
1746 <dt class=
"hdlist1">
1747 <a href=
"git-request-pull.html">git-request-pull(
1)
</a>
1751 Generates a summary of pending changes.
1754 <dt class=
"hdlist1">
1755 <a href=
"git-send-email.html">git-send-email(
1)
</a>
1759 Send a collection of patches as emails.
1762 <dt class=
"hdlist1">
1763 <a href=
"git-svn.html">git-svn(
1)
</a>
1767 Bidirectional operation between a Subversion repository and Git.
1773 <h3 id=
"_reset_restore_and_revert">Reset, restore and revert
</h3>
1774 <div class=
"paragraph"><p>There are three commands with similar names:
<code>git reset
</code>,
1775 <code>git restore
</code> and
<code>git revert
</code>.
</p></div>
1776 <div class=
"ulist"><ul>
1779 <a href=
"git-revert.html">git-revert(
1)
</a> is about making a new commit that reverts the
1780 changes made by other commits.
1785 <a href=
"git-restore.html">git-restore(
1)
</a> is about restoring files in the working tree
1786 from either the index or another commit. This command does not
1787 update your branch. The command can also be used to restore files in
1788 the index from another commit.
1793 <a href=
"git-reset.html">git-reset(
1)
</a> is about updating your branch, moving the tip
1794 in order to add or remove commits from the branch. This operation
1795 changes the commit history.
1797 <div class=
"paragraph"><p><code>git reset
</code> can also be used to restore the index, overlapping with
1798 <code>git restore
</code>.
</p></div>
1805 <h2 id=
"_low_level_commands_plumbing">Low-level commands (plumbing)
</h2>
1806 <div class=
"sectionbody">
1807 <div class=
"paragraph"><p>Although Git includes its
1808 own porcelain layer, its low-level commands are sufficient to support
1809 development of alternative porcelains. Developers of such porcelains
1810 might start by reading about
<a href=
"git-update-index.html">git-update-index(
1)
</a> and
1811 <a href=
"git-read-tree.html">git-read-tree(
1)
</a>.
</p></div>
1812 <div class=
"paragraph"><p>The interface (input, output, set of options and the semantics)
1813 to these low-level commands are meant to be a lot more stable
1814 than Porcelain level commands, because these commands are
1815 primarily for scripted use. The interface to Porcelain commands
1816 on the other hand are subject to change in order to improve the
1817 end user experience.
</p></div>
1818 <div class=
"paragraph"><p>The following description divides
1819 the low-level commands into commands that manipulate objects (in
1820 the repository, index, and working tree), commands that interrogate and
1821 compare objects, and commands that move objects and references between
1822 repositories.
</p></div>
1824 <h3 id=
"_manipulation_commands">Manipulation commands
</h3>
1825 <div class=
"dlist"><dl>
1826 <dt class=
"hdlist1">
1827 <a href=
"git-apply.html">git-apply(
1)
</a>
1831 Apply a patch to files and/or to the index.
1834 <dt class=
"hdlist1">
1835 <a href=
"git-checkout-index.html">git-checkout-index(
1)
</a>
1839 Copy files from the index to the working tree.
1842 <dt class=
"hdlist1">
1843 <a href=
"git-commit-graph.html">git-commit-graph(
1)
</a>
1847 Write and verify Git commit-graph files.
1850 <dt class=
"hdlist1">
1851 <a href=
"git-commit-tree.html">git-commit-tree(
1)
</a>
1855 Create a new commit object.
1858 <dt class=
"hdlist1">
1859 <a href=
"git-hash-object.html">git-hash-object(
1)
</a>
1863 Compute object ID and optionally create an object from a file.
1866 <dt class=
"hdlist1">
1867 <a href=
"git-index-pack.html">git-index-pack(
1)
</a>
1871 Build pack index file for an existing packed archive.
1874 <dt class=
"hdlist1">
1875 <a href=
"git-merge-file.html">git-merge-file(
1)
</a>
1879 Run a three-way file merge.
1882 <dt class=
"hdlist1">
1883 <a href=
"git-merge-index.html">git-merge-index(
1)
</a>
1887 Run a merge for files needing merging.
1890 <dt class=
"hdlist1">
1891 <a href=
"git-mktag.html">git-mktag(
1)
</a>
1895 Creates a tag object with extra validation.
1898 <dt class=
"hdlist1">
1899 <a href=
"git-mktree.html">git-mktree(
1)
</a>
1903 Build a tree-object from ls-tree formatted text.
1906 <dt class=
"hdlist1">
1907 <a href=
"git-multi-pack-index.html">git-multi-pack-index(
1)
</a>
1911 Write and verify multi-pack-indexes.
1914 <dt class=
"hdlist1">
1915 <a href=
"git-pack-objects.html">git-pack-objects(
1)
</a>
1919 Create a packed archive of objects.
1922 <dt class=
"hdlist1">
1923 <a href=
"git-prune-packed.html">git-prune-packed(
1)
</a>
1927 Remove extra objects that are already in pack files.
1930 <dt class=
"hdlist1">
1931 <a href=
"git-read-tree.html">git-read-tree(
1)
</a>
1935 Reads tree information into the index.
1938 <dt class=
"hdlist1">
1939 <a href=
"git-replay.html">git-replay(
1)
</a>
1943 EXPERIMENTAL: Replay commits on a new base, works with bare repos too.
1946 <dt class=
"hdlist1">
1947 <a href=
"git-symbolic-ref.html">git-symbolic-ref(
1)
</a>
1951 Read, modify and delete symbolic refs.
1954 <dt class=
"hdlist1">
1955 <a href=
"git-unpack-objects.html">git-unpack-objects(
1)
</a>
1959 Unpack objects from a packed archive.
1962 <dt class=
"hdlist1">
1963 <a href=
"git-update-index.html">git-update-index(
1)
</a>
1967 Register file contents in the working tree to the index.
1970 <dt class=
"hdlist1">
1971 <a href=
"git-update-ref.html">git-update-ref(
1)
</a>
1975 Update the object name stored in a ref safely.
1978 <dt class=
"hdlist1">
1979 <a href=
"git-write-tree.html">git-write-tree(
1)
</a>
1983 Create a tree object from the current index.
1989 <h3 id=
"_interrogation_commands">Interrogation commands
</h3>
1990 <div class=
"dlist"><dl>
1991 <dt class=
"hdlist1">
1992 <a href=
"git-cat-file.html">git-cat-file(
1)
</a>
1996 Provide contents or details of repository objects.
1999 <dt class=
"hdlist1">
2000 <a href=
"git-cherry.html">git-cherry(
1)
</a>
2004 Find commits yet to be applied to upstream.
2007 <dt class=
"hdlist1">
2008 <a href=
"git-diff-files.html">git-diff-files(
1)
</a>
2012 Compares files in the working tree and the index.
2015 <dt class=
"hdlist1">
2016 <a href=
"git-diff-index.html">git-diff-index(
1)
</a>
2020 Compare a tree to the working tree or index.
2023 <dt class=
"hdlist1">
2024 <a href=
"git-diff-tree.html">git-diff-tree(
1)
</a>
2028 Compares the content and mode of blobs found via two tree objects.
2031 <dt class=
"hdlist1">
2032 <a href=
"git-for-each-ref.html">git-for-each-ref(
1)
</a>
2036 Output information on each ref.
2039 <dt class=
"hdlist1">
2040 <a href=
"git-for-each-repo.html">git-for-each-repo(
1)
</a>
2044 Run a Git command on a list of repositories.
2047 <dt class=
"hdlist1">
2048 <a href=
"git-get-tar-commit-id.html">git-get-tar-commit-id(
1)
</a>
2052 Extract commit ID from an archive created using git-archive.
2055 <dt class=
"hdlist1">
2056 <a href=
"git-ls-files.html">git-ls-files(
1)
</a>
2060 Show information about files in the index and the working tree.
2063 <dt class=
"hdlist1">
2064 <a href=
"git-ls-remote.html">git-ls-remote(
1)
</a>
2068 List references in a remote repository.
2071 <dt class=
"hdlist1">
2072 <a href=
"git-ls-tree.html">git-ls-tree(
1)
</a>
2076 List the contents of a tree object.
2079 <dt class=
"hdlist1">
2080 <a href=
"git-merge-base.html">git-merge-base(
1)
</a>
2084 Find as good common ancestors as possible for a merge.
2087 <dt class=
"hdlist1">
2088 <a href=
"git-name-rev.html">git-name-rev(
1)
</a>
2092 Find symbolic names for given revs.
2095 <dt class=
"hdlist1">
2096 <a href=
"git-pack-redundant.html">git-pack-redundant(
1)
</a>
2100 Find redundant pack files.
2103 <dt class=
"hdlist1">
2104 <a href=
"git-rev-list.html">git-rev-list(
1)
</a>
2108 Lists commit objects in reverse chronological order.
2111 <dt class=
"hdlist1">
2112 <a href=
"git-rev-parse.html">git-rev-parse(
1)
</a>
2116 Pick out and massage parameters.
2119 <dt class=
"hdlist1">
2120 <a href=
"git-show-index.html">git-show-index(
1)
</a>
2124 Show packed archive index.
2127 <dt class=
"hdlist1">
2128 <a href=
"git-show-ref.html">git-show-ref(
1)
</a>
2132 List references in a local repository.
2135 <dt class=
"hdlist1">
2136 <a href=
"git-unpack-file.html">git-unpack-file(
1)
</a>
2140 Creates a temporary file with a blob
’s contents.
2143 <dt class=
"hdlist1">
2144 <a href=
"git-var.html">git-var(
1)
</a>
2148 Show a Git logical variable.
2151 <dt class=
"hdlist1">
2152 <a href=
"git-verify-pack.html">git-verify-pack(
1)
</a>
2156 Validate packed Git archive files.
2160 <div class=
"paragraph"><p>In general, the interrogate commands do not touch the files in
2161 the working tree.
</p></div>
2164 <h3 id=
"_syncing_repositories">Syncing repositories
</h3>
2165 <div class=
"dlist"><dl>
2166 <dt class=
"hdlist1">
2167 <a href=
"git-daemon.html">git-daemon(
1)
</a>
2171 A really simple server for Git repositories.
2174 <dt class=
"hdlist1">
2175 <a href=
"git-fetch-pack.html">git-fetch-pack(
1)
</a>
2179 Receive missing objects from another repository.
2182 <dt class=
"hdlist1">
2183 <a href=
"git-http-backend.html">git-http-backend(
1)
</a>
2187 Server side implementation of Git over HTTP.
2190 <dt class=
"hdlist1">
2191 <a href=
"git-send-pack.html">git-send-pack(
1)
</a>
2195 Push objects over Git protocol to another repository.
2198 <dt class=
"hdlist1">
2199 <a href=
"git-update-server-info.html">git-update-server-info(
1)
</a>
2203 Update auxiliary info file to help dumb servers.
2207 <div class=
"paragraph"><p>The following are helper commands used by the above; end users
2208 typically do not use them directly.
</p></div>
2209 <div class=
"dlist"><dl>
2210 <dt class=
"hdlist1">
2211 <a href=
"git-http-fetch.html">git-http-fetch(
1)
</a>
2215 Download from a remote Git repository via HTTP.
2218 <dt class=
"hdlist1">
2219 <a href=
"git-http-push.html">git-http-push(
1)
</a>
2223 Push objects over HTTP/DAV to another repository.
2226 <dt class=
"hdlist1">
2227 <a href=
"git-receive-pack.html">git-receive-pack(
1)
</a>
2231 Receive what is pushed into the repository.
2234 <dt class=
"hdlist1">
2235 <a href=
"git-shell.html">git-shell(
1)
</a>
2239 Restricted login shell for Git-only SSH access.
2242 <dt class=
"hdlist1">
2243 <a href=
"git-upload-archive.html">git-upload-archive(
1)
</a>
2247 Send archive back to git-archive.
2250 <dt class=
"hdlist1">
2251 <a href=
"git-upload-pack.html">git-upload-pack(
1)
</a>
2255 Send objects packed back to git-fetch-pack.
2261 <h3 id=
"_internal_helper_commands">Internal helper commands
</h3>
2262 <div class=
"paragraph"><p>These are internal helper commands used by other commands; end
2263 users typically do not use them directly.
</p></div>
2264 <div class=
"dlist"><dl>
2265 <dt class=
"hdlist1">
2266 <a href=
"git-check-attr.html">git-check-attr(
1)
</a>
2270 Display gitattributes information.
2273 <dt class=
"hdlist1">
2274 <a href=
"git-check-ignore.html">git-check-ignore(
1)
</a>
2278 Debug gitignore / exclude files.
2281 <dt class=
"hdlist1">
2282 <a href=
"git-check-mailmap.html">git-check-mailmap(
1)
</a>
2286 Show canonical names and email addresses of contacts.
2289 <dt class=
"hdlist1">
2290 <a href=
"git-check-ref-format.html">git-check-ref-format(
1)
</a>
2294 Ensures that a reference name is well formed.
2297 <dt class=
"hdlist1">
2298 <a href=
"git-column.html">git-column(
1)
</a>
2302 Display data in columns.
2305 <dt class=
"hdlist1">
2306 <a href=
"git-credential.html">git-credential(
1)
</a>
2310 Retrieve and store user credentials.
2313 <dt class=
"hdlist1">
2314 <a href=
"git-credential-cache.html">git-credential-cache(
1)
</a>
2318 Helper to temporarily store passwords in memory.
2321 <dt class=
"hdlist1">
2322 <a href=
"git-credential-store.html">git-credential-store(
1)
</a>
2326 Helper to store credentials on disk.
2329 <dt class=
"hdlist1">
2330 <a href=
"git-fmt-merge-msg.html">git-fmt-merge-msg(
1)
</a>
2334 Produce a merge commit message.
2337 <dt class=
"hdlist1">
2338 <a href=
"git-hook.html">git-hook(
1)
</a>
2345 <dt class=
"hdlist1">
2346 <a href=
"git-interpret-trailers.html">git-interpret-trailers(
1)
</a>
2350 Add or parse structured information in commit messages.
2353 <dt class=
"hdlist1">
2354 <a href=
"git-mailinfo.html">git-mailinfo(
1)
</a>
2358 Extracts patch and authorship from a single e-mail message.
2361 <dt class=
"hdlist1">
2362 <a href=
"git-mailsplit.html">git-mailsplit(
1)
</a>
2366 Simple UNIX mbox splitter program.
2369 <dt class=
"hdlist1">
2370 <a href=
"git-merge-one-file.html">git-merge-one-file(
1)
</a>
2374 The standard helper program to use with git-merge-index.
2377 <dt class=
"hdlist1">
2378 <a href=
"git-patch-id.html">git-patch-id(
1)
</a>
2382 Compute unique ID for a patch.
2385 <dt class=
"hdlist1">
2386 <a href=
"git-sh-i18n.html">git-sh-i18n(
1)
</a>
2390 Git
’s i18n setup code for shell scripts.
2393 <dt class=
"hdlist1">
2394 <a href=
"git-sh-setup.html">git-sh-setup(
1)
</a>
2398 Common Git shell script setup code.
2401 <dt class=
"hdlist1">
2402 <a href=
"git-stripspace.html">git-stripspace(
1)
</a>
2406 Remove unnecessary whitespace.
2414 <h2 id=
"_guides">Guides
</h2>
2415 <div class=
"sectionbody">
2416 <div class=
"paragraph"><p>The following documentation pages are guides about Git concepts.
</p></div>
2417 <div class=
"dlist"><dl>
2418 <dt class=
"hdlist1">
2419 <a href=
"gitcore-tutorial.html">gitcore-tutorial(
7)
</a>
2423 A Git core tutorial for developers.
2426 <dt class=
"hdlist1">
2427 <a href=
"gitcredentials.html">gitcredentials(
7)
</a>
2431 Providing usernames and passwords to Git.
2434 <dt class=
"hdlist1">
2435 <a href=
"gitcvs-migration.html">gitcvs-migration(
7)
</a>
2442 <dt class=
"hdlist1">
2443 <a href=
"gitdiffcore.html">gitdiffcore(
7)
</a>
2447 Tweaking diff output.
2450 <dt class=
"hdlist1">
2451 <a href=
"giteveryday.html">giteveryday(
7)
</a>
2455 A useful minimum set of commands for Everyday Git.
2458 <dt class=
"hdlist1">
2459 <a href=
"gitfaq.html">gitfaq(
7)
</a>
2463 Frequently asked questions about using Git.
2466 <dt class=
"hdlist1">
2467 <a href=
"gitglossary.html">gitglossary(
7)
</a>
2474 <dt class=
"hdlist1">
2475 <a href=
"gitnamespaces.html">gitnamespaces(
7)
</a>
2482 <dt class=
"hdlist1">
2483 <a href=
"gitremote-helpers.html">gitremote-helpers(
7)
</a>
2487 Helper programs to interact with remote repositories.
2490 <dt class=
"hdlist1">
2491 <a href=
"gitsubmodules.html">gitsubmodules(
7)
</a>
2495 Mounting one repository inside another.
2498 <dt class=
"hdlist1">
2499 <a href=
"gittutorial.html">gittutorial(
7)
</a>
2503 A tutorial introduction to Git.
2506 <dt class=
"hdlist1">
2507 <a href=
"gittutorial-2.html">gittutorial-
2(
7)
</a>
2511 A tutorial introduction to Git: part two.
2514 <dt class=
"hdlist1">
2515 <a href=
"gitworkflows.html">gitworkflows(
7)
</a>
2519 An overview of recommended workflows with Git.
2526 <h2 id=
"_repository_command_and_file_interfaces">Repository, command and file interfaces
</h2>
2527 <div class=
"sectionbody">
2528 <div class=
"paragraph"><p>This documentation discusses repository and command interfaces which
2529 users are expected to interact with directly. See
<code>--user-formats
</code> in
2530 <a href=
"git-help.html">git-help(
1)
</a> for more details on the criteria.
</p></div>
2531 <div class=
"dlist"><dl>
2532 <dt class=
"hdlist1">
2533 <a href=
"gitattributes.html">gitattributes(
5)
</a>
2537 Defining attributes per path.
2540 <dt class=
"hdlist1">
2541 <a href=
"gitcli.html">gitcli(
7)
</a>
2545 Git command-line interface and conventions.
2548 <dt class=
"hdlist1">
2549 <a href=
"githooks.html">githooks(
5)
</a>
2556 <dt class=
"hdlist1">
2557 <a href=
"gitignore.html">gitignore(
5)
</a>
2561 Specifies intentionally untracked files to ignore.
2564 <dt class=
"hdlist1">
2565 <a href=
"gitmailmap.html">gitmailmap(
5)
</a>
2569 Map author/committer names and/or E-Mail addresses.
2572 <dt class=
"hdlist1">
2573 <a href=
"gitmodules.html">gitmodules(
5)
</a>
2577 Defining submodule properties.
2580 <dt class=
"hdlist1">
2581 <a href=
"gitrepository-layout.html">gitrepository-layout(
5)
</a>
2585 Git Repository Layout.
2588 <dt class=
"hdlist1">
2589 <a href=
"gitrevisions.html">gitrevisions(
7)
</a>
2593 Specifying revisions and ranges for Git.
2600 <h2 id=
"_file_formats_protocols_and_other_developer_interfaces">File formats, protocols and other developer interfaces
</h2>
2601 <div class=
"sectionbody">
2602 <div class=
"paragraph"><p>This documentation discusses file formats, over-the-wire protocols and
2603 other git developer interfaces. See
<code>--developer-interfaces
</code> in
2604 <a href=
"git-help.html">git-help(
1)
</a>.
</p></div>
2605 <div class=
"dlist"><dl>
2606 <dt class=
"hdlist1">
2607 <a href=
"gitformat-bundle.html">gitformat-bundle(
5)
</a>
2611 The bundle file format.
2614 <dt class=
"hdlist1">
2615 <a href=
"gitformat-chunk.html">gitformat-chunk(
5)
</a>
2619 Chunk-based file formats.
2622 <dt class=
"hdlist1">
2623 <a href=
"gitformat-commit-graph.html">gitformat-commit-graph(
5)
</a>
2627 Git commit-graph format.
2630 <dt class=
"hdlist1">
2631 <a href=
"gitformat-index.html">gitformat-index(
5)
</a>
2638 <dt class=
"hdlist1">
2639 <a href=
"gitformat-pack.html">gitformat-pack(
5)
</a>
2646 <dt class=
"hdlist1">
2647 <a href=
"gitformat-signature.html">gitformat-signature(
5)
</a>
2651 Git cryptographic signature formats.
2654 <dt class=
"hdlist1">
2655 <a href=
"gitprotocol-capabilities.html">gitprotocol-capabilities(
5)
</a>
2659 Protocol v0 and v1 capabilities.
2662 <dt class=
"hdlist1">
2663 <a href=
"gitprotocol-common.html">gitprotocol-common(
5)
</a>
2667 Things common to various protocols.
2670 <dt class=
"hdlist1">
2671 <a href=
"gitprotocol-http.html">gitprotocol-http(
5)
</a>
2675 Git HTTP-based protocols.
2678 <dt class=
"hdlist1">
2679 <a href=
"gitprotocol-pack.html">gitprotocol-pack(
5)
</a>
2683 How packs are transferred over-the-wire.
2686 <dt class=
"hdlist1">
2687 <a href=
"gitprotocol-v2.html">gitprotocol-v2(
5)
</a>
2691 Git Wire Protocol, Version
2.
2698 <h2 id=
"_configuration_mechanism">Configuration Mechanism
</h2>
2699 <div class=
"sectionbody">
2700 <div class=
"paragraph"><p>Git uses a simple text format to store customizations that are per
2701 repository and are per user. Such a configuration file may look
2702 like this:
</p></div>
2703 <div class=
"listingblock">
2704 <div class=
"content">
2706 # A '#' or ';' character indicates a comment.
2711 ; Don't trust file modes
2716 name =
"Junio C Hamano"
2717 email =
"gitster@pobox.com"</code></pre>
2719 <div class=
"paragraph"><p>Various commands read from the configuration file and adjust
2720 their operation accordingly. See
<a href=
"git-config.html">git-config(
1)
</a> for a
2721 list and more details about the configuration mechanism.
</p></div>
2725 <h2 id=
"_identifier_terminology">Identifier Terminology
</h2>
2726 <div class=
"sectionbody">
2727 <div class=
"dlist"><dl>
2728 <dt class=
"hdlist1">
2733 Indicates the object name for any type of object.
2736 <dt class=
"hdlist1">
2741 Indicates a blob object name.
2744 <dt class=
"hdlist1">
2749 Indicates a tree object name.
2752 <dt class=
"hdlist1">
2757 Indicates a commit object name.
2760 <dt class=
"hdlist1">
2765 Indicates a tree, commit or tag object name. A
2766 command that takes a
<tree-ish
> argument ultimately wants to
2767 operate on a
<tree
> object but automatically dereferences
2768 <commit
> and
<tag
> objects that point at a
<tree
>.
2771 <dt class=
"hdlist1">
2776 Indicates a commit or tag object name. A
2777 command that takes a
<commit-ish
> argument ultimately wants to
2778 operate on a
<commit
> object but automatically dereferences
2779 <tag
> objects that point at a
<commit
>.
2782 <dt class=
"hdlist1">
2787 Indicates that an object type is required.
2788 Currently one of:
<code>blob
</code>,
<code>tree
</code>,
<code>commit
</code>, or
<code>tag
</code>.
2791 <dt class=
"hdlist1">
2796 Indicates a filename - almost always relative to the
2797 root of the tree structure
<code>GIT_INDEX_FILE
</code> describes.
2804 <h2 id=
"_symbolic_identifiers">Symbolic Identifiers
</h2>
2805 <div class=
"sectionbody">
2806 <div class=
"paragraph"><p>Any Git command accepting any
<object
> can also use the following
2807 symbolic notation:
</p></div>
2808 <div class=
"dlist"><dl>
2809 <dt class=
"hdlist1">
2814 indicates the head of the current branch.
2817 <dt class=
"hdlist1">
2822 a valid tag
<em>name
</em>
2823 (i.e. a
<code>refs/tags/
<tag
></code> reference).
2826 <dt class=
"hdlist1">
2831 a valid head
<em>name
</em>
2832 (i.e. a
<code>refs/heads/
<head
></code> reference).
2836 <div class=
"paragraph"><p>For a more complete list of ways to spell object names, see
2837 "SPECIFYING REVISIONS" section in
<a href=
"gitrevisions.html">gitrevisions(
7)
</a>.
</p></div>
2841 <h2 id=
"_file_directory_structure">File/Directory Structure
</h2>
2842 <div class=
"sectionbody">
2843 <div class=
"paragraph"><p>Please see the
<a href=
"gitrepository-layout.html">gitrepository-layout(
5)
</a> document.
</p></div>
2844 <div class=
"paragraph"><p>Read
<a href=
"githooks.html">githooks(
5)
</a> for more details about each hook.
</p></div>
2845 <div class=
"paragraph"><p>Higher level SCMs may provide and manage additional information in the
2846 <code>$GIT_DIR
</code>.
</p></div>
2850 <h2 id=
"_terminology">Terminology
</h2>
2851 <div class=
"sectionbody">
2852 <div class=
"paragraph"><p>Please see
<a href=
"gitglossary.html">gitglossary(
7)
</a>.
</p></div>
2856 <h2 id=
"_environment_variables">Environment Variables
</h2>
2857 <div class=
"sectionbody">
2858 <div class=
"paragraph"><p>Various Git commands pay attention to environment variables and change
2859 their behavior. The environment variables marked as
"Boolean" take
2860 their values the same way as Boolean valued configuration variables, e.g.
2861 "true",
"yes",
"on" and positive numbers are taken as
"yes".
</p></div>
2862 <div class=
"paragraph"><p>Here are the variables:
</p></div>
2864 <h3 id=
"_the_git_repository">The Git Repository
</h3>
2865 <div class=
"paragraph"><p>These environment variables apply to
<em>all
</em> core Git commands. Nb: it
2866 is worth noting that they may be used/overridden by SCMS sitting above
2867 Git so take care if using a foreign front-end.
</p></div>
2868 <div class=
"dlist"><dl>
2869 <dt class=
"hdlist1">
2870 <code>GIT_INDEX_FILE
</code>
2874 This environment variable specifies an alternate
2875 index file. If not specified, the default of
<code>$GIT_DIR/index
</code>
2879 <dt class=
"hdlist1">
2880 <code>GIT_INDEX_VERSION
</code>
2884 This environment variable specifies what index version is used
2885 when writing the index file out. It won
’t affect existing index
2886 files. By default index file version
2 or
3 is used. See
2887 <a href=
"git-update-index.html">git-update-index(
1)
</a> for more information.
2890 <dt class=
"hdlist1">
2891 <code>GIT_OBJECT_DIRECTORY
</code>
2895 If the object storage directory is specified via this
2896 environment variable then the sha1 directories are created
2897 underneath - otherwise the default
<code>$GIT_DIR/objects
</code>
2901 <dt class=
"hdlist1">
2902 <code>GIT_ALTERNATE_OBJECT_DIRECTORIES
</code>
2906 Due to the immutable nature of Git objects, old objects can be
2907 archived into shared, read-only directories. This variable
2908 specifies a
":" separated (on Windows
";" separated) list
2909 of Git object directories which can be used to search for Git
2910 objects. New objects will not be written to these directories.
2912 <div class=
"paragraph"><p>Entries that begin with
<code>"</code> (double-quote) will be interpreted
2913 as C-style quoted paths, removing leading and trailing
2914 double-quotes and respecting backslash escapes. E.g., the value
2915 <code>"path-with-\
"-and-:-in-it":vanilla-path
</code> has two paths:
2916 <code>path-with-
"-and-:-in-it</code> and <code>vanilla-path</code>.</p></div>
2918 <dt class="hdlist1
">
2919 <code>GIT_DIR</code>
2923 If the <code>GIT_DIR</code> environment variable is set then it
2924 specifies a path to use instead of the default <code>.git</code>
2925 for the base of the repository.
2926 The <code>--git-dir</code> command-line option also sets this value.
2929 <dt class="hdlist1
">
2930 <code>GIT_WORK_TREE</code>
2934 Set the path to the root of the working tree.
2935 This can also be controlled by the <code>--work-tree</code> command-line
2936 option and the core.worktree configuration variable.
2939 <dt class="hdlist1
">
2940 <code>GIT_NAMESPACE</code>
2944 Set the Git namespace; see <a href="gitnamespaces.html
">gitnamespaces(7)</a> for details.
2945 The <code>--namespace</code> command-line option also sets this value.
2948 <dt class="hdlist1
">
2949 <code>GIT_CEILING_DIRECTORIES</code>
2953 This should be a colon-separated list of absolute paths. If
2954 set, it is a list of directories that Git should not chdir up
2955 into while looking for a repository directory (useful for
2956 excluding slow-loading network directories). It will not
2957 exclude the current working directory or a GIT_DIR set on the
2958 command line or in the environment. Normally, Git has to read
2959 the entries in this list and resolve any symlink that
2960 might be present in order to compare them with the current
2961 directory. However, if even this access is slow, you
2962 can add an empty entry to the list to tell Git that the
2963 subsequent entries are not symlinks and needn’t be resolved;
2965 <code>GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink</code>.
2968 <dt class="hdlist1
">
2969 <code>GIT_DISCOVERY_ACROSS_FILESYSTEM</code>
2973 When run in a directory that does not have ".git
" repository
2974 directory, Git tries to find such a directory in the parent
2975 directories to find the top of the working tree, but by default it
2976 does not cross filesystem boundaries. This Boolean environment variable
2977 can be set to true to tell Git not to stop at filesystem
2978 boundaries. Like <code>GIT_CEILING_DIRECTORIES</code>, this will not affect
2979 an explicit repository directory set via <code>GIT_DIR</code> or on the
2983 <dt class="hdlist1
">
2984 <code>GIT_COMMON_DIR</code>
2988 If this variable is set to a path, non-worktree files that are
2989 normally in $GIT_DIR will be taken from this path
2990 instead. Worktree-specific files such as HEAD or index are
2991 taken from $GIT_DIR. See <a href="gitrepository-layout.html
">gitrepository-layout(5)</a> and
2992 <a href="git-worktree.html
">git-worktree(1)</a> for
2993 details. This variable has lower precedence than other path
2994 variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY…
2997 <dt class="hdlist1
">
2998 <code>GIT_DEFAULT_HASH</code>
3002 If this variable is set, the default hash algorithm for new
3003 repositories will be set to this value. This value is
3004 ignored when cloning and the setting of the remote repository
3005 is always used. The default is "sha1
".
3006 See <code>--object-format</code> in <a href="git-init.html
">git-init(1)</a>.
3012 <h3 id="_git_commits
">Git Commits</h3>
3013 <div class="dlist
"><dl>
3014 <dt class="hdlist1
">
3015 <code>GIT_AUTHOR_NAME</code>
3019 The human-readable name used in the author identity when creating commit or
3020 tag objects, or when writing reflogs. Overrides the <code>user.name</code> and
3021 <code>author.name</code> configuration settings.
3024 <dt class="hdlist1
">
3025 <code>GIT_AUTHOR_EMAIL</code>
3029 The email address used in the author identity when creating commit or
3030 tag objects, or when writing reflogs. Overrides the <code>user.email</code> and
3031 <code>author.email</code> configuration settings.
3034 <dt class="hdlist1
">
3035 <code>GIT_AUTHOR_DATE</code>
3039 The date used for the author identity when creating commit or tag objects, or
3040 when writing reflogs. See <a href="git-commit.html
">git-commit(1)</a> for valid formats.
3043 <dt class="hdlist1
">
3044 <code>GIT_COMMITTER_NAME</code>
3048 The human-readable name used in the committer identity when creating commit or
3049 tag objects, or when writing reflogs. Overrides the <code>user.name</code> and
3050 <code>committer.name</code> configuration settings.
3053 <dt class="hdlist1
">
3054 <code>GIT_COMMITTER_EMAIL</code>
3058 The email address used in the author identity when creating commit or
3059 tag objects, or when writing reflogs. Overrides the <code>user.email</code> and
3060 <code>committer.email</code> configuration settings.
3063 <dt class="hdlist1
">
3064 <code>GIT_COMMITTER_DATE</code>
3068 The date used for the committer identity when creating commit or tag objects, or
3069 when writing reflogs. See <a href="git-commit.html
">git-commit(1)</a> for valid formats.
3072 <dt class="hdlist1
">
3077 The email address used in the author and committer identities if no other
3078 relevant environment variable or configuration setting has been set.
3084 <h3 id="_git_diffs
">Git Diffs</h3>
3085 <div class="dlist
"><dl>
3086 <dt class="hdlist1
">
3087 <code>GIT_DIFF_OPTS</code>
3091 Only valid setting is "--unified=??
" or "-u??
" to set the
3092 number of context lines shown when a unified diff is created.
3093 This takes precedence over any "-U
" or "--unified
" option
3094 value passed on the Git diff command line.
3097 <dt class="hdlist1
">
3098 <code>GIT_EXTERNAL_DIFF</code>
3102 When the environment variable <code>GIT_EXTERNAL_DIFF</code> is set, the
3103 program named by it is called to generate diffs, and Git
3104 does not use its builtin diff machinery.
3105 For a path that is added, removed, or modified,
3106 <code>GIT_EXTERNAL_DIFF</code> is called with 7 parameters:
3108 <div class="literalblock
">
3109 <div class="content
">
3110 <pre><code>path old-file old-hex old-mode new-file new-hex new-mode</code></pre>
3112 <div class="paragraph
"><p>where:</p></div>
3114 <dt class="hdlist1
">
3115 <old|new>-file
3119 are files GIT_EXTERNAL_DIFF can use to read the
3120 contents of <old|new>,
3123 <dt class="hdlist1
">
3128 are the 40-hexdigit SHA-1 hashes,
3131 <dt class="hdlist1
">
3132 <old|new>-mode
3136 are the octal representation of the file modes.
3138 <div class="paragraph
"><p>The file parameters can point at the user’s working file
3139 (e.g. <code>new-file</code> in "git-diff-files
"), <code>/dev/null</code> (e.g. <code>old-file</code>
3140 when a new file is added), or a temporary file (e.g. <code>old-file</code> in the
3141 index). <code>GIT_EXTERNAL_DIFF</code> should not worry about unlinking the
3142 temporary file — it is removed when <code>GIT_EXTERNAL_DIFF</code> exits.</p></div>
3143 <div class="paragraph
"><p>For a path that is unmerged, <code>GIT_EXTERNAL_DIFF</code> is called with 1
3144 parameter, <path>.</p></div>
3145 <div class="paragraph
"><p>For each path <code>GIT_EXTERNAL_DIFF</code> is called, two environment variables,
3146 <code>GIT_DIFF_PATH_COUNTER</code> and <code>GIT_DIFF_PATH_TOTAL</code> are set.</p></div>
3148 <dt class="hdlist1
">
3149 <code>GIT_DIFF_PATH_COUNTER</code>
3153 A 1-based counter incremented by one for every path.
3156 <dt class="hdlist1
">
3157 <code>GIT_DIFF_PATH_TOTAL</code>
3161 The total number of paths.
3167 <h3 id="_other
">other</h3>
3168 <div class="dlist
"><dl>
3169 <dt class="hdlist1
">
3170 <code>GIT_MERGE_VERBOSITY</code>
3174 A number controlling the amount of output shown by
3175 the recursive merge strategy. Overrides merge.verbosity.
3176 See <a href="git-merge.html
">git-merge(1)</a>
3179 <dt class="hdlist1
">
3180 <code>GIT_PAGER</code>
3184 This environment variable overrides <code>$PAGER</code>. If it is set
3185 to an empty string or to the value "cat
", Git will not launch
3186 a pager. See also the <code>core.pager</code> option in
3187 <a href="git-config.html
">git-config(1)</a>.
3190 <dt class="hdlist1
">
3191 <code>GIT_PROGRESS_DELAY</code>
3195 A number controlling how many seconds to delay before showing
3196 optional progress indicators. Defaults to 2.
3199 <dt class="hdlist1
">
3200 <code>GIT_EDITOR</code>
3204 This environment variable overrides <code>$EDITOR</code> and <code>$VISUAL</code>.
3205 It is used by several Git commands when, on interactive mode,
3206 an editor is to be launched. See also <a href="git-var.html
">git-var(1)</a>
3207 and the <code>core.editor</code> option in <a href="git-config.html
">git-config(1)</a>.
3210 <dt class="hdlist1
">
3211 <code>GIT_SEQUENCE_EDITOR</code>
3215 This environment variable overrides the configured Git editor
3216 when editing the todo list of an interactive rebase. See also
3217 <a href="git-rebase.html
">git-rebase(1)</a> and the <code>sequence.editor</code> option in
3218 <a href="git-config.html
">git-config(1)</a>.
3221 <dt class="hdlist1
">
3222 <code>GIT_SSH</code>
3224 <dt class="hdlist1
">
3225 <code>GIT_SSH_COMMAND</code>
3229 If either of these environment variables is set then <em>git fetch</em>
3230 and <em>git push</em> will use the specified command instead of <em>ssh</em>
3231 when they need to connect to a remote system.
3232 The command-line parameters passed to the configured command are
3233 determined by the ssh variant. See <code>ssh.variant</code> option in
3234 <a href="git-config.html
">git-config(1)</a> for details.
3236 <div class="paragraph
"><p><code>$GIT_SSH_COMMAND</code> takes precedence over <code>$GIT_SSH</code>, and is interpreted
3237 by the shell, which allows additional arguments to be included.
3238 <code>$GIT_SSH</code> on the other hand must be just the path to a program
3239 (which can be a wrapper shell script, if additional arguments are
3241 <div class="paragraph
"><p>Usually it is easier to configure any desired options through your
3242 personal <code>.ssh/config</code> file. Please consult your ssh documentation
3243 for further details.</p></div>
3245 <dt class="hdlist1
">
3246 <code>GIT_SSH_VARIANT</code>
3250 If this environment variable is set, it overrides Git’s autodetection
3251 whether <code>GIT_SSH</code>/<code>GIT_SSH_COMMAND</code>/<code>core.sshCommand</code> refer to OpenSSH,
3252 plink or tortoiseplink. This variable overrides the config setting
3253 <code>ssh.variant</code> that serves the same purpose.
3256 <dt class="hdlist1
">
3257 <code>GIT_SSL_NO_VERIFY</code>
3261 Setting and exporting this environment variable to any value
3262 tells Git not to verify the SSL certificate when fetching or
3266 <dt class="hdlist1
">
3267 <code>GIT_ATTR_SOURCE</code>
3271 Sets the treeish that gitattributes will be read from.
3274 <dt class="hdlist1
">
3275 <code>GIT_ASKPASS</code>
3279 If this environment variable is set, then Git commands which need to
3280 acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
3281 will call this program with a suitable prompt as command-line argument
3282 and read the password from its STDOUT. See also the <code>core.askPass</code>
3283 option in <a href="git-config.html
">git-config(1)</a>.
3286 <dt class="hdlist1
">
3287 <code>GIT_TERMINAL_PROMPT</code>
3291 If this Boolean environment variable is set to false, git will not prompt
3292 on the terminal (e.g., when asking for HTTP authentication).
3295 <dt class="hdlist1
">
3296 <code>GIT_CONFIG_GLOBAL</code>
3298 <dt class="hdlist1
">
3299 <code>GIT_CONFIG_SYSTEM</code>
3303 Take the configuration from the given files instead from global or
3304 system-level configuration files. If <code>GIT_CONFIG_SYSTEM</code> is set, the
3305 system config file defined at build time (usually <code>/etc/gitconfig</code>)
3306 will not be read. Likewise, if <code>GIT_CONFIG_GLOBAL</code> is set, neither
3307 <code>$HOME/.gitconfig</code> nor <code>$XDG_CONFIG_HOME/git/config</code> will be read. Can
3308 be set to <code>/dev/null</code> to skip reading configuration files of the
3312 <dt class="hdlist1
">
3313 <code>GIT_CONFIG_NOSYSTEM</code>
3317 Whether to skip reading settings from the system-wide
3318 <code>$(prefix)/etc/gitconfig</code> file. This Boolean environment variable can
3319 be used along with <code>$HOME</code> and <code>$XDG_CONFIG_HOME</code> to create a
3320 predictable environment for a picky script, or you can set it
3321 to true to temporarily avoid using a buggy <code>/etc/gitconfig</code> file while
3322 waiting for someone with sufficient permissions to fix it.
3325 <dt class="hdlist1
">
3326 <code>GIT_FLUSH</code>
3331 If this environment variable is set to "1", then commands such
3332 as <em>git blame</em> (in incremental mode), <em>git rev-list</em>, <em>git log</em>,
3333 <em>git check-attr</em> and <em>git check-ignore</em> will
3334 force a flush of the output stream after each record have been
3336 variable is set to "0", the output of these commands will be done
3337 using completely buffered I/O. If this environment variable is
3338 not set, Git will choose buffered or record-oriented flushing
3339 based on whether stdout appears to be redirected to a file or not.
3342 <dt class="hdlist1
">
3343 <code>GIT_TRACE</code>
3347 Enables general trace messages, e.g. alias expansion, built-in
3348 command execution and external command execution.
3350 <div class="paragraph
"><p>If this variable is set to "1", "2" or "true
" (comparison
3351 is case insensitive), trace messages will be printed to
3353 <div class="paragraph
"><p>If the variable is set to an integer value greater than 2
3354 and lower than 10 (strictly) then Git will interpret this
3355 value as an open file descriptor and will try to write the
3356 trace messages into this file descriptor.</p></div>
3357 <div class="paragraph
"><p>Alternatively, if the variable is set to an absolute path
3358 (starting with a <em>/</em> character), Git will interpret this
3359 as a file path and will try to append the trace messages
3361 <div class="paragraph
"><p>Unsetting the variable, or setting it to empty, "0" or
3362 "false
" (case insensitive) disables trace messages.</p></div>
3364 <dt class="hdlist1
">
3365 <code>GIT_TRACE_FSMONITOR</code>
3369 Enables trace messages for the filesystem monitor extension.
3370 See <code>GIT_TRACE</code> for available trace output options.
3373 <dt class="hdlist1
">
3374 <code>GIT_TRACE_PACK_ACCESS</code>
3378 Enables trace messages for all accesses to any packs. For each
3379 access, the pack file name and an offset in the pack is
3380 recorded. This may be helpful for troubleshooting some
3381 pack-related performance problems.
3382 See <code>GIT_TRACE</code> for available trace output options.
3385 <dt class="hdlist1
">
3386 <code>GIT_TRACE_PACKET</code>
3390 Enables trace messages for all packets coming in or out of a
3391 given program. This can help with debugging object negotiation
3392 or other protocol issues. Tracing is turned off at a packet
3393 starting with "PACK
" (but see <code>GIT_TRACE_PACKFILE</code> below).
3394 See <code>GIT_TRACE</code> for available trace output options.
3397 <dt class="hdlist1
">
3398 <code>GIT_TRACE_PACKFILE</code>
3402 Enables tracing of packfiles sent or received by a
3403 given program. Unlike other trace output, this trace is
3404 verbatim: no headers, and no quoting of binary data. You almost
3405 certainly want to direct into a file (e.g.,
3406 <code>GIT_TRACE_PACKFILE=/tmp/my.pack</code>) rather than displaying it on
3407 the terminal or mixing it with other trace output.
3409 <div class="paragraph
"><p>Note that this is currently only implemented for the client side
3410 of clones and fetches.</p></div>
3412 <dt class="hdlist1
">
3413 <code>GIT_TRACE_PERFORMANCE</code>
3417 Enables performance related trace messages, e.g. total execution
3418 time of each Git command.
3419 See <code>GIT_TRACE</code> for available trace output options.
3422 <dt class="hdlist1
">
3423 <code>GIT_TRACE_REFS</code>
3427 Enables trace messages for operations on the ref database.
3428 See <code>GIT_TRACE</code> for available trace output options.
3431 <dt class="hdlist1
">
3432 <code>GIT_TRACE_SETUP</code>
3436 Enables trace messages printing the .git, working tree and current
3437 working directory after Git has completed its setup phase.
3438 See <code>GIT_TRACE</code> for available trace output options.
3441 <dt class="hdlist1
">
3442 <code>GIT_TRACE_SHALLOW</code>
3446 Enables trace messages that can help debugging fetching /
3447 cloning of shallow repositories.
3448 See <code>GIT_TRACE</code> for available trace output options.
3451 <dt class="hdlist1
">
3452 <code>GIT_TRACE_CURL</code>
3456 Enables a curl full trace dump of all incoming and outgoing data,
3457 including descriptive information, of the git transport protocol.
3458 This is similar to doing curl <code>--trace-ascii</code> on the command line.
3459 See <code>GIT_TRACE</code> for available trace output options.
3462 <dt class="hdlist1
">
3463 <code>GIT_TRACE_CURL_NO_DATA</code>
3467 When a curl trace is enabled (see <code>GIT_TRACE_CURL</code> above), do not dump
3468 data (that is, only dump info lines and headers).
3471 <dt class="hdlist1
">
3472 <code>GIT_TRACE2</code>
3476 Enables more detailed trace messages from the "trace2
" library.
3477 Output from <code>GIT_TRACE2</code> is a simple text-based format for human
3480 <div class="paragraph
"><p>If this variable is set to "1", "2" or "true
" (comparison
3481 is case insensitive), trace messages will be printed to
3483 <div class="paragraph
"><p>If the variable is set to an integer value greater than 2
3484 and lower than 10 (strictly) then Git will interpret this
3485 value as an open file descriptor and will try to write the
3486 trace messages into this file descriptor.</p></div>
3487 <div class="paragraph
"><p>Alternatively, if the variable is set to an absolute path
3488 (starting with a <em>/</em> character), Git will interpret this
3489 as a file path and will try to append the trace messages
3490 to it. If the path already exists and is a directory, the
3491 trace messages will be written to files (one per process)
3492 in that directory, named according to the last component
3493 of the SID and an optional counter (to avoid filename
3494 collisions).</p></div>
3495 <div class="paragraph
"><p>In addition, if the variable is set to
3496 <code>af_unix:[<socket_type>:]<absolute-pathname></code>, Git will try
3497 to open the path as a Unix Domain Socket. The socket type
3498 can be either <code>stream</code> or <code>dgram</code>.</p></div>
3499 <div class="paragraph
"><p>Unsetting the variable, or setting it to empty, "0" or
3500 "false
" (case insensitive) disables trace messages.</p></div>
3501 <div class="paragraph
"><p>See <a href="technical/api-trace2.html
">Trace2 documentation</a>
3502 for full details.</p></div>
3504 <dt class="hdlist1
">
3505 <code>GIT_TRACE2_EVENT</code>
3509 This setting writes a JSON-based format that is suited for machine
3511 See <code>GIT_TRACE2</code> for available trace output options and
3512 <a href="technical/api-trace2.html
">Trace2 documentation</a> for full details.
3515 <dt class="hdlist1
">
3516 <code>GIT_TRACE2_PERF</code>
3520 In addition to the text-based messages available in <code>GIT_TRACE2</code>, this
3521 setting writes a column-based format for understanding nesting
3523 See <code>GIT_TRACE2</code> for available trace output options and
3524 <a href="technical/api-trace2.html
">Trace2 documentation</a> for full details.
3527 <dt class="hdlist1
">
3528 <code>GIT_TRACE_REDACT</code>
3532 By default, when tracing is activated, Git redacts the values of
3533 cookies, the "Authorization:
" header, the "Proxy-Authorization:
"
3534 header and packfile URIs. Set this Boolean environment variable to false to prevent this
3538 <dt class="hdlist1
">
3539 <code>GIT_LITERAL_PATHSPECS</code>
3543 Setting this Boolean environment variable to true will cause Git to treat all
3544 pathspecs literally, rather than as glob patterns. For example,
3545 running <code>GIT_LITERAL_PATHSPECS=1 git log -- '*.c'</code> will search
3546 for commits that touch the path <code>*.c</code>, not any paths that the
3547 glob <code>*.c</code> matches. You might want this if you are feeding
3548 literal paths to Git (e.g., paths previously given to you by
3549 <code>git ls-tree</code>, <code>--raw</code> diff output, etc).
3552 <dt class="hdlist1
">
3553 <code>GIT_GLOB_PATHSPECS</code>
3557 Setting this Boolean environment variable to true will cause Git to treat all
3558 pathspecs as glob patterns (aka "glob
" magic).
3561 <dt class="hdlist1
">
3562 <code>GIT_NOGLOB_PATHSPECS</code>
3566 Setting this Boolean environment variable to true will cause Git to treat all
3567 pathspecs as literal (aka "literal
" magic).
3570 <dt class="hdlist1
">
3571 <code>GIT_ICASE_PATHSPECS</code>
3575 Setting this Boolean environment variable to true will cause Git to treat all
3576 pathspecs as case-insensitive.
3579 <dt class="hdlist1
">
3580 <code>GIT_REFLOG_ACTION</code>
3584 When a ref is updated, reflog entries are created to keep
3585 track of the reason why the ref was updated (which is
3586 typically the name of the high-level command that updated
3587 the ref), in addition to the old and new values of the ref.
3588 A scripted Porcelain command can use set_reflog_action
3589 helper function in <code>git-sh-setup</code> to set its name to this
3590 variable when it is invoked as the top level command by the
3591 end user, to be recorded in the body of the reflog.
3594 <dt class="hdlist1
">
3595 <code>GIT_REF_PARANOIA</code>
3599 If this Boolean environment variable is set to false, ignore broken or badly named refs when iterating
3600 over lists of refs. Normally Git will try to include any such
3601 refs, which may cause some operations to fail. This is usually
3602 preferable, as potentially destructive operations (e.g.,
3603 <a href="git-prune.html
">git-prune(1)</a>) are better off aborting rather than
3604 ignoring broken refs (and thus considering the history they
3605 point to as not worth saving). The default value is <code>1</code> (i.e.,
3606 be paranoid about detecting and aborting all operations). You
3607 should not normally need to set this to <code>0</code>, but it may be
3608 useful when trying to salvage data from a corrupted repository.
3611 <dt class="hdlist1
">
3612 <code>GIT_COMMIT_GRAPH_PARANOIA</code>
3616 When loading a commit object from the commit-graph, Git performs an
3617 existence check on the object in the object database. This is done to
3618 avoid issues with stale commit-graphs that contain references to
3619 already-deleted commits, but comes with a performance penalty.
3621 <div class="paragraph
"><p>The default is "false
", which disables the aforementioned behavior.
3622 Setting this to "true
" enables the existence check so that stale commits
3623 will never be returned from the commit-graph at the cost of performance.</p></div>
3625 <dt class="hdlist1
">
3626 <code>GIT_ALLOW_PROTOCOL</code>
3630 If set to a colon-separated list of protocols, behave as if
3631 <code>protocol.allow</code> is set to <code>never</code>, and each of the listed
3632 protocols has <code>protocol.<name>.allow</code> set to <code>always</code>
3633 (overriding any existing configuration). See the description of
3634 <code>protocol.allow</code> in <a href="git-config.html
">git-config(1)</a> for more details.
3637 <dt class="hdlist1
">
3638 <code>GIT_PROTOCOL_FROM_USER</code>
3642 Set this Boolean environment variable to false to prevent protocols used by fetch/push/clone which are
3643 configured to the <code>user</code> state. This is useful to restrict recursive
3644 submodule initialization from an untrusted repository or for programs
3645 which feed potentially-untrusted URLS to git commands. See
3646 <a href="git-config.html
">git-config(1)</a> for more details.
3649 <dt class="hdlist1
">
3650 <code>GIT_PROTOCOL</code>
3654 For internal use only. Used in handshaking the wire protocol.
3655 Contains a colon <em>:</em> separated list of keys with optional values
3656 <em>key[=value]</em>. Presence of unknown keys and values must be
3659 <div class="paragraph
"><p>Note that servers may need to be configured to allow this variable to
3660 pass over some transports. It will be propagated automatically when
3661 accessing local repositories (i.e., <code>file://</code> or a filesystem path), as
3662 well as over the <code>git://</code> protocol. For git-over-http, it should work
3663 automatically in most configurations, but see the discussion in
3664 <a href="git-http-backend.html
">git-http-backend(1)</a>. For git-over-ssh, the ssh server may need
3665 to be configured to allow clients to pass this variable (e.g., by using
3666 <code>AcceptEnv GIT_PROTOCOL</code> with OpenSSH).</p></div>
3667 <div class="paragraph
"><p>This configuration is optional. If the variable is not propagated, then
3668 clients will fall back to the original "v0
" protocol (but may miss out
3669 on some performance improvements or features). This variable currently
3670 only affects clones and fetches; it is not yet used for pushes (but may
3671 be in the future).</p></div>
3673 <dt class="hdlist1
">
3674 <code>GIT_OPTIONAL_LOCKS</code>
3678 If this Boolean environment variable is set to false, Git will complete any requested operation without
3679 performing any optional sub-operations that require taking a lock.
3680 For example, this will prevent <code>git status</code> from refreshing the
3681 index as a side effect. This is useful for processes running in
3682 the background which do not want to cause lock contention with
3683 other operations on the repository. Defaults to <code>1</code>.
3686 <dt class="hdlist1
">
3687 <code>GIT_REDIRECT_STDIN</code>
3689 <dt class="hdlist1
">
3690 <code>GIT_REDIRECT_STDOUT</code>
3692 <dt class="hdlist1
">
3693 <code>GIT_REDIRECT_STDERR</code>
3697 Windows-only: allow redirecting the standard input/output/error
3698 handles to paths specified by the environment variables. This is
3699 particularly useful in multi-threaded applications where the
3700 canonical way to pass standard handles via <code>CreateProcess()</code> is
3701 not an option because it would require the handles to be marked
3702 inheritable (and consequently <strong>every</strong> spawned process would
3703 inherit them, possibly blocking regular Git operations). The
3704 primary intended use case is to use named pipes for communication
3705 (e.g. <code>\\.\pipe\my-git-stdin-123</code>).
3707 <div class="paragraph
"><p>Two special values are supported: <code>off</code> will simply close the
3708 corresponding standard handle, and if <code>GIT_REDIRECT_STDERR</code> is
3709 <code>2>&1</code>, standard error will be redirected to the same handle as
3710 standard output.</p></div>
3712 <dt class="hdlist1
">
3713 <code>GIT_PRINT_SHA1_ELLIPSIS</code> (deprecated)
3717 If set to <code>yes</code>, print an ellipsis following an
3718 (abbreviated) SHA-1 value. This affects indications of
3719 detached HEADs (<a href="git-checkout.html
">git-checkout(1)</a>) and the raw
3720 diff output (<a href="git-diff.html
">git-diff(1)</a>). Printing an
3721 ellipsis in the cases mentioned is no longer considered
3722 adequate and support for it is likely to be removed in the
3723 foreseeable future (along with the variable).
3731 <h2 id="_discussion_a_id_discussion_a
">Discussion<a id="Discussion
"></a></h2>
3732 <div class="sectionbody
">
3733 <div class="paragraph
"><p>More detail on the following is available from the
3734 <a href="user-manual.html#git-concepts
">Git concepts chapter of the
3735 user-manual</a> and <a href="gitcore-tutorial.html
">gitcore-tutorial(7)</a>.</p></div>
3736 <div class="paragraph
"><p>A Git project normally consists of a working directory with a ".git
"
3737 subdirectory at the top level. The .git directory contains, among other
3738 things, a compressed object database representing the complete history
3739 of the project, an "index
" file which links that history to the current
3740 contents of the working tree, and named pointers into that history such
3741 as tags and branch heads.</p></div>
3742 <div class="paragraph
"><p>The object database contains objects of three main types: blobs, which
3743 hold file data; trees, which point to blobs and other trees to build up
3744 directory hierarchies; and commits, which each reference a single tree
3745 and some number of parent commits.</p></div>
3746 <div class="paragraph
"><p>The commit, equivalent to what other systems call a "changeset
" or
3747 "version
", represents a step in the project’s history, and each parent
3748 represents an immediately preceding step. Commits with more than one
3749 parent represent merges of independent lines of development.</p></div>
3750 <div class="paragraph
"><p>All objects are named by the SHA-1 hash of their contents, normally
3751 written as a string of 40 hex digits. Such names are globally unique.
3752 The entire history leading up to a commit can be vouched for by signing
3753 just that commit. A fourth object type, the tag, is provided for this
3755 <div class="paragraph
"><p>When first created, objects are stored in individual files, but for
3756 efficiency may later be compressed together into "pack files
".</p></div>
3757 <div class="paragraph
"><p>Named pointers called refs mark interesting points in history. A ref
3758 may contain the SHA-1 name of an object or the name of another ref (the
3759 latter is called a "symbolic ref
").
3760 Refs with names beginning <code>refs/head/</code> contain the SHA-1 name of the most
3761 recent commit (or "head
") of a branch under development. SHA-1 names of
3762 tags of interest are stored under <code>refs/tags/</code>. A symbolic ref named
3763 <code>HEAD</code> contains the name of the currently checked-out branch.</p></div>
3764 <div class="paragraph
"><p>The index file is initialized with a list of all paths and, for each
3765 path, a blob object and a set of attributes. The blob object represents
3766 the contents of the file as of the head of the current branch. The
3767 attributes (last modified time, size, etc.) are taken from the
3768 corresponding file in the working tree. Subsequent changes to the
3769 working tree can be found by comparing these attributes. The index may
3770 be updated with new content, and new commits may be created from the
3771 content stored in the index.</p></div>
3772 <div class="paragraph
"><p>The index is also capable of storing multiple entries (called "stages
")
3773 for a given pathname. These stages are used to hold the various
3774 unmerged version of a file when a merge is in progress.</p></div>
3778 <h2 id="_further_documentation
">FURTHER DOCUMENTATION</h2>
3779 <div class="sectionbody
">
3780 <div class="paragraph
"><p>See the references in the "description
" section to get started
3781 using Git. The following is probably more detail than necessary
3782 for a first-time user.</p></div>
3783 <div class="paragraph
"><p>The <a href="user-manual.html#git-concepts
">Git concepts chapter of the
3784 user-manual</a> and <a href="gitcore-tutorial.html
">gitcore-tutorial(7)</a> both provide
3785 introductions to the underlying Git architecture.</p></div>
3786 <div class="paragraph
"><p>See <a href="gitworkflows.html
">gitworkflows(7)</a> for an overview of recommended workflows.</p></div>
3787 <div class="paragraph
"><p>See also the <a href="howto-index.html
">howto</a> documents for some useful
3789 <div class="paragraph
"><p>The internals are documented in the
3790 <a href="technical/api-index.html
">Git API documentation</a>.</p></div>
3791 <div class="paragraph
"><p>Users migrating from CVS may also want to
3792 read <a href="gitcvs-migration.html
">gitcvs-migration(7)</a>.</p></div>
3796 <h2 id="_authors
">Authors</h2>
3797 <div class="sectionbody
">
3798 <div class="paragraph
"><p>Git was started by Linus Torvalds, and is currently maintained by Junio
3799 C Hamano. Numerous contributions have come from the Git mailing list
3800 <<a href="mailto:git@vger.kernel.org
">git@vger.kernel.org</a>>. <a href="https://openhub.net/p/git/contributors/summary
">https://openhub.net/p/git/contributors/summary</a>
3801 gives you a more complete list of contributors.</p></div>
3802 <div class="paragraph
"><p>If you have a clone of git.git itself, the
3803 output of <a href="git-shortlog.html
">git-shortlog(1)</a> and <a href="git-blame.html
">git-blame(1)</a> can show you
3804 the authors for specific parts of the project.</p></div>
3808 <h2 id="_reporting_bugs
">Reporting Bugs</h2>
3809 <div class="sectionbody
">
3810 <div class="paragraph
"><p>Report bugs to the Git mailing list <<a href="mailto:git@vger.kernel.org
">git@vger.kernel.org</a>> where the
3811 development and maintenance is primarily done. You do not have to be
3812 subscribed to the list to send a message there. See the list archive
3813 at <a href="https://lore.kernel.org/git
">https://lore.kernel.org/git</a> for previous bug reports and other
3814 discussions.</p></div>
3815 <div class="paragraph
"><p>Issues which are security relevant should be disclosed privately to
3816 the Git Security mailing list <<a href="mailto:git-security@googlegroups.com
">git-security@googlegroups.com</a>>.</p></div>
3820 <h2 id="_see_also
">SEE ALSO</h2>
3821 <div class="sectionbody
">
3822 <div class="paragraph
"><p><a href="gittutorial.html
">gittutorial(7)</a>, <a href="gittutorial-
2.html
">gittutorial-2(7)</a>,
3823 <a href="giteveryday.html
">giteveryday(7)</a>, <a href="gitcvs-migration.html
">gitcvs-migration(7)</a>,
3824 <a href="gitglossary.html
">gitglossary(7)</a>, <a href="gitcore-tutorial.html
">gitcore-tutorial(7)</a>,
3825 <a href="gitcli.html
">gitcli(7)</a>, <a href="user-manual.html
">The Git User’s Manual</a>,
3826 <a href="gitworkflows.html
">gitworkflows(7)</a></p></div>
3830 <h2 id="_git
">GIT</h2>
3831 <div class="sectionbody
">
3832 <div class="paragraph
"><p>Part of the <a href="git.html
">git(1)</a> suite</p></div>
3836 <div id="footnotes
"><hr /></div>
3838 <div id="footer-text
">
3840 2023-12-27 15:50:18 PST