1GIT(1) Git Manual GIT(1)
2
3
4
6 git - the stupid content tracker
7
9 git [--version] [--help] [-C <path>] [-c <name>=<value>]
10 [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
11 [-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]
12 [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
13 [--super-prefix=<path>] [--config-env=<name>=<envvar>]
14 <command> [<args>]
15
17 Git is a fast, scalable, distributed revision control system with an
18 unusually rich command set that provides both high-level operations and
19 full access to internals.
20
21 See gittutorial(7) to get started, then see giteveryday(7) for a useful
22 minimum set of commands. The Git User’s Manual[1] has a more in-depth
23 introduction.
24
25 After you mastered the basic concepts, you can come back to this page
26 to learn what commands Git offers. You can learn more about individual
27 Git commands with "git help command". gitcli(7) manual page gives you
28 an overview of the command-line command syntax.
29
30 A formatted and hyperlinked copy of the latest Git documentation can be
31 viewed at https://git.github.io/htmldocs/git.html or
32 https://git-scm.com/docs.
33
35 --version
36 Prints the Git suite version that the git program came from.
37
38 This option is internally converted to git version ... and accepts
39 the same options as the git-version(1) command. If --help is also
40 given, it takes precedence over --version.
41
42 --help
43 Prints the synopsis and a list of the most commonly used commands.
44 If the option --all or -a is given then all available commands are
45 printed. If a Git command is named this option will bring up the
46 manual page for that command.
47
48 Other options are available to control how the manual page is
49 displayed. See git-help(1) for more information, because git --help
50 ... is converted internally into git help ....
51
52 -C <path>
53 Run as if git was started in <path> instead of the current working
54 directory. When multiple -C options are given, each subsequent
55 non-absolute -C <path> is interpreted relative to the preceding -C
56 <path>. If <path> is present but empty, e.g. -C "", then the
57 current working directory is left unchanged.
58
59 This option affects options that expect path name like --git-dir
60 and --work-tree in that their interpretations of the path names
61 would be made relative to the working directory caused by the -C
62 option. For example the following invocations are equivalent:
63
64 git --git-dir=a.git --work-tree=b -C c status
65 git --git-dir=c/a.git --work-tree=c/b status
66
67 -c <name>=<value>
68 Pass a configuration parameter to the command. The value given will
69 override values from configuration files. The <name> is expected in
70 the same format as listed by git config (subkeys separated by
71 dots).
72
73 Note that omitting the = in git -c foo.bar ... is allowed and sets
74 foo.bar to the boolean true value (just like [foo]bar would in a
75 config file). Including the equals but with an empty value (like
76 git -c foo.bar= ...) sets foo.bar to the empty string which git
77 config --type=bool will convert to false.
78
79 --config-env=<name>=<envvar>
80 Like -c <name>=<value>, give configuration variable <name> a value,
81 where <envvar> is the name of an environment variable from which to
82 retrieve the value. Unlike -c there is no shortcut for directly
83 setting the value to an empty string, instead the environment
84 variable itself must be set to the empty string. It is an error if
85 the <envvar> does not exist in the environment. <envvar> may not
86 contain an equals sign to avoid ambiguity with <name> containing
87 one.
88
89 This is useful for cases where you want to pass transitory
90 configuration options to git, but are doing so on OS’s where other
91 processes might be able to read your cmdline (e.g.
92 /proc/self/cmdline), but not your environ (e.g.
93 /proc/self/environ). That behavior is the default on Linux, but may
94 not be on your system.
95
96 Note that this might add security for variables such as
97 http.extraHeader where the sensitive information is part of the
98 value, but not e.g. url.<base>.insteadOf where the sensitive
99 information can be part of the key.
100
101 --exec-path[=<path>]
102 Path to wherever your core Git programs are installed. This can
103 also be controlled by setting the GIT_EXEC_PATH environment
104 variable. If no path is given, git will print the current setting
105 and then exit.
106
107 --html-path
108 Print the path, without trailing slash, where Git’s HTML
109 documentation is installed and exit.
110
111 --man-path
112 Print the manpath (see man(1)) for the man pages for this version
113 of Git and exit.
114
115 --info-path
116 Print the path where the Info files documenting this version of Git
117 are installed and exit.
118
119 -p, --paginate
120 Pipe all output into less (or if set, $PAGER) if standard output is
121 a terminal. This overrides the pager.<cmd> configuration options
122 (see the "Configuration Mechanism" section below).
123
124 -P, --no-pager
125 Do not pipe Git output into a pager.
126
127 --git-dir=<path>
128 Set the path to the repository (".git" directory). This can also be
129 controlled by setting the GIT_DIR environment variable. It can be
130 an absolute path or relative path to current working directory.
131
132 Specifying the location of the ".git" directory using this option
133 (or GIT_DIR environment variable) turns off the repository
134 discovery that tries to find a directory with ".git" subdirectory
135 (which is how the repository and the top-level of the working tree
136 are discovered), and tells Git that you are at the top level of the
137 working tree. If you are not at the top-level directory of the
138 working tree, you should tell Git where the top-level of the
139 working tree is, with the --work-tree=<path> option (or
140 GIT_WORK_TREE environment variable)
141
142 If you just want to run git as if it was started in <path> then use
143 git -C <path>.
144
145 --work-tree=<path>
146 Set the path to the working tree. It can be an absolute path or a
147 path relative to the current working directory. This can also be
148 controlled by setting the GIT_WORK_TREE environment variable and
149 the core.worktree configuration variable (see core.worktree in git-
150 config(1) for a more detailed discussion).
151
152 --namespace=<path>
153 Set the Git namespace. See gitnamespaces(7) for more details.
154 Equivalent to setting the GIT_NAMESPACE environment variable.
155
156 --super-prefix=<path>
157 Currently for internal use only. Set a prefix which gives a path
158 from above a repository down to its root. One use is to give
159 submodules context about the superproject that invoked it.
160
161 --bare
162 Treat the repository as a bare repository. If GIT_DIR environment
163 is not set, it is set to the current working directory.
164
165 --no-replace-objects
166 Do not use replacement refs to replace Git objects. See git-
167 replace(1) for more information.
168
169 --literal-pathspecs
170 Treat pathspecs literally (i.e. no globbing, no pathspec magic).
171 This is equivalent to setting the GIT_LITERAL_PATHSPECS environment
172 variable to 1.
173
174 --glob-pathspecs
175 Add "glob" magic to all pathspec. This is equivalent to setting the
176 GIT_GLOB_PATHSPECS environment variable to 1. Disabling globbing on
177 individual pathspecs can be done using pathspec magic ":(literal)"
178
179 --noglob-pathspecs
180 Add "literal" magic to all pathspec. This is equivalent to setting
181 the GIT_NOGLOB_PATHSPECS environment variable to 1. Enabling
182 globbing on individual pathspecs can be done using pathspec magic
183 ":(glob)"
184
185 --icase-pathspecs
186 Add "icase" magic to all pathspec. This is equivalent to setting
187 the GIT_ICASE_PATHSPECS environment variable to 1.
188
189 --no-optional-locks
190 Do not perform optional operations that require locks. This is
191 equivalent to setting the GIT_OPTIONAL_LOCKS to 0.
192
193 --list-cmds=group[,group...]
194 List commands by group. This is an internal/experimental option and
195 may change or be removed in the future. Supported groups are:
196 builtins, parseopt (builtin commands that use parse-options), main
197 (all commands in libexec directory), others (all other commands in
198 $PATH that have git- prefix), list-<category> (see categories in
199 command-list.txt), nohelpers (exclude helper commands), alias and
200 config (retrieve command list from config variable
201 completion.commands)
202
204 We divide Git into high level ("porcelain") commands and low level
205 ("plumbing") commands.
206
208 We separate the porcelain commands into the main commands and some
209 ancillary user utilities.
210
211 Main porcelain commands
212 git-add(1)
213 Add file contents to the index.
214
215 git-am(1)
216 Apply a series of patches from a mailbox.
217
218 git-archive(1)
219 Create an archive of files from a named tree.
220
221 git-bisect(1)
222 Use binary search to find the commit that introduced a bug.
223
224 git-branch(1)
225 List, create, or delete branches.
226
227 git-bundle(1)
228 Move objects and refs by archive.
229
230 git-checkout(1)
231 Switch branches or restore working tree files.
232
233 git-cherry-pick(1)
234 Apply the changes introduced by some existing commits.
235
236 git-citool(1)
237 Graphical alternative to git-commit.
238
239 git-clean(1)
240 Remove untracked files from the working tree.
241
242 git-clone(1)
243 Clone a repository into a new directory.
244
245 git-commit(1)
246 Record changes to the repository.
247
248 git-describe(1)
249 Give an object a human readable name based on an available ref.
250
251 git-diff(1)
252 Show changes between commits, commit and working tree, etc.
253
254 git-fetch(1)
255 Download objects and refs from another repository.
256
257 git-format-patch(1)
258 Prepare patches for e-mail submission.
259
260 git-gc(1)
261 Cleanup unnecessary files and optimize the local repository.
262
263 git-grep(1)
264 Print lines matching a pattern.
265
266 git-gui(1)
267 A portable graphical interface to Git.
268
269 git-init(1)
270 Create an empty Git repository or reinitialize an existing one.
271
272 git-log(1)
273 Show commit logs.
274
275 git-maintenance(1)
276 Run tasks to optimize Git repository data.
277
278 git-merge(1)
279 Join two or more development histories together.
280
281 git-mv(1)
282 Move or rename a file, a directory, or a symlink.
283
284 git-notes(1)
285 Add or inspect object notes.
286
287 git-pull(1)
288 Fetch from and integrate with another repository or a local branch.
289
290 git-push(1)
291 Update remote refs along with associated objects.
292
293 git-range-diff(1)
294 Compare two commit ranges (e.g. two versions of a branch).
295
296 git-rebase(1)
297 Reapply commits on top of another base tip.
298
299 git-reset(1)
300 Reset current HEAD to the specified state.
301
302 git-restore(1)
303 Restore working tree files.
304
305 git-revert(1)
306 Revert some existing commits.
307
308 git-rm(1)
309 Remove files from the working tree and from the index.
310
311 git-shortlog(1)
312 Summarize git log output.
313
314 git-show(1)
315 Show various types of objects.
316
317 git-sparse-checkout(1)
318 Reduce your working tree to a subset of tracked files.
319
320 git-stash(1)
321 Stash the changes in a dirty working directory away.
322
323 git-status(1)
324 Show the working tree status.
325
326 git-submodule(1)
327 Initialize, update or inspect submodules.
328
329 git-switch(1)
330 Switch branches.
331
332 git-tag(1)
333 Create, list, delete or verify a tag object signed with GPG.
334
335 git-worktree(1)
336 Manage multiple working trees.
337
338 gitk(1)
339 The Git repository browser.
340
341 Ancillary Commands
342 Manipulators:
343
344 git-config(1)
345 Get and set repository or global options.
346
347 git-fast-export(1)
348 Git data exporter.
349
350 git-fast-import(1)
351 Backend for fast Git data importers.
352
353 git-filter-branch(1)
354 Rewrite branches.
355
356 git-mergetool(1)
357 Run merge conflict resolution tools to resolve merge conflicts.
358
359 git-pack-refs(1)
360 Pack heads and tags for efficient repository access.
361
362 git-prune(1)
363 Prune all unreachable objects from the object database.
364
365 git-reflog(1)
366 Manage reflog information.
367
368 git-remote(1)
369 Manage set of tracked repositories.
370
371 git-repack(1)
372 Pack unpacked objects in a repository.
373
374 git-replace(1)
375 Create, list, delete refs to replace objects.
376
377 Interrogators:
378
379 git-annotate(1)
380 Annotate file lines with commit information.
381
382 git-blame(1)
383 Show what revision and author last modified each line of a file.
384
385 git-bugreport(1)
386 Collect information for user to file a bug report.
387
388 git-count-objects(1)
389 Count unpacked number of objects and their disk consumption.
390
391 git-difftool(1)
392 Show changes using common diff tools.
393
394 git-fsck(1)
395 Verifies the connectivity and validity of the objects in the
396 database.
397
398 git-help(1)
399 Display help information about Git.
400
401 git-instaweb(1)
402 Instantly browse your working repository in gitweb.
403
404 git-merge-tree(1)
405 Show three-way merge without touching index.
406
407 git-rerere(1)
408 Reuse recorded resolution of conflicted merges.
409
410 git-show-branch(1)
411 Show branches and their commits.
412
413 git-verify-commit(1)
414 Check the GPG signature of commits.
415
416 git-verify-tag(1)
417 Check the GPG signature of tags.
418
419 git-whatchanged(1)
420 Show logs with difference each commit introduces.
421
422 gitweb(1)
423 Git web interface (web frontend to Git repositories).
424
425 Interacting with Others
426 These commands are to interact with foreign SCM and with other people
427 via patch over e-mail.
428
429 git-cvsexportcommit(1)
430 Export a single commit to a CVS checkout.
431
432 git-cvsimport(1)
433 Salvage your data out of another SCM people love to hate.
434
435 git-cvsserver(1)
436 A CVS server emulator for Git.
437
438 git-imap-send(1)
439 Send a collection of patches from stdin to an IMAP folder.
440
441 git-p4(1)
442 Import from and submit to Perforce repositories.
443
444 git-quiltimport(1)
445 Applies a quilt patchset onto the current branch.
446
447 git-request-pull(1)
448 Generates a summary of pending changes.
449
450 git-send-email(1)
451 Send a collection of patches as emails.
452
453 git-svn(1)
454 Bidirectional operation between a Subversion repository and Git.
455
456 Reset, restore and revert
457 There are three commands with similar names: git reset, git restore and
458 git revert.
459
460 • git-revert(1) is about making a new commit that reverts the changes
461 made by other commits.
462
463 • git-restore(1) is about restoring files in the working tree from
464 either the index or another commit. This command does not update
465 your branch. The command can also be used to restore files in the
466 index from another commit.
467
468 • git-reset(1) is about updating your branch, moving the tip in order
469 to add or remove commits from the branch. This operation changes
470 the commit history.
471
472 git reset can also be used to restore the index, overlapping with
473 git restore.
474
476 Although Git includes its own porcelain layer, its low-level commands
477 are sufficient to support development of alternative porcelains.
478 Developers of such porcelains might start by reading about git-update-
479 index(1) and git-read-tree(1).
480
481 The interface (input, output, set of options and the semantics) to
482 these low-level commands are meant to be a lot more stable than
483 Porcelain level commands, because these commands are primarily for
484 scripted use. The interface to Porcelain commands on the other hand are
485 subject to change in order to improve the end user experience.
486
487 The following description divides the low-level commands into commands
488 that manipulate objects (in the repository, index, and working tree),
489 commands that interrogate and compare objects, and commands that move
490 objects and references between repositories.
491
492 Manipulation commands
493 git-apply(1)
494 Apply a patch to files and/or to the index.
495
496 git-checkout-index(1)
497 Copy files from the index to the working tree.
498
499 git-commit-graph(1)
500 Write and verify Git commit-graph files.
501
502 git-commit-tree(1)
503 Create a new commit object.
504
505 git-hash-object(1)
506 Compute object ID and optionally creates a blob from a file.
507
508 git-index-pack(1)
509 Build pack index file for an existing packed archive.
510
511 git-merge-file(1)
512 Run a three-way file merge.
513
514 git-merge-index(1)
515 Run a merge for files needing merging.
516
517 git-mktag(1)
518 Creates a tag object with extra validation.
519
520 git-mktree(1)
521 Build a tree-object from ls-tree formatted text.
522
523 git-multi-pack-index(1)
524 Write and verify multi-pack-indexes.
525
526 git-pack-objects(1)
527 Create a packed archive of objects.
528
529 git-prune-packed(1)
530 Remove extra objects that are already in pack files.
531
532 git-read-tree(1)
533 Reads tree information into the index.
534
535 git-symbolic-ref(1)
536 Read, modify and delete symbolic refs.
537
538 git-unpack-objects(1)
539 Unpack objects from a packed archive.
540
541 git-update-index(1)
542 Register file contents in the working tree to the index.
543
544 git-update-ref(1)
545 Update the object name stored in a ref safely.
546
547 git-write-tree(1)
548 Create a tree object from the current index.
549
550 Interrogation commands
551 git-cat-file(1)
552 Provide content or type and size information for repository
553 objects.
554
555 git-cherry(1)
556 Find commits yet to be applied to upstream.
557
558 git-diff-files(1)
559 Compares files in the working tree and the index.
560
561 git-diff-index(1)
562 Compare a tree to the working tree or index.
563
564 git-diff-tree(1)
565 Compares the content and mode of blobs found via two tree objects.
566
567 git-for-each-ref(1)
568 Output information on each ref.
569
570 git-for-each-repo(1)
571 Run a Git command on a list of repositories.
572
573 git-get-tar-commit-id(1)
574 Extract commit ID from an archive created using git-archive.
575
576 git-ls-files(1)
577 Show information about files in the index and the working tree.
578
579 git-ls-remote(1)
580 List references in a remote repository.
581
582 git-ls-tree(1)
583 List the contents of a tree object.
584
585 git-merge-base(1)
586 Find as good common ancestors as possible for a merge.
587
588 git-name-rev(1)
589 Find symbolic names for given revs.
590
591 git-pack-redundant(1)
592 Find redundant pack files.
593
594 git-rev-list(1)
595 Lists commit objects in reverse chronological order.
596
597 git-rev-parse(1)
598 Pick out and massage parameters.
599
600 git-show-index(1)
601 Show packed archive index.
602
603 git-show-ref(1)
604 List references in a local repository.
605
606 git-unpack-file(1)
607 Creates a temporary file with a blob’s contents.
608
609 git-var(1)
610 Show a Git logical variable.
611
612 git-verify-pack(1)
613 Validate packed Git archive files.
614
615 In general, the interrogate commands do not touch the files in the
616 working tree.
617
618 Syncing repositories
619 git-daemon(1)
620 A really simple server for Git repositories.
621
622 git-fetch-pack(1)
623 Receive missing objects from another repository.
624
625 git-http-backend(1)
626 Server side implementation of Git over HTTP.
627
628 git-send-pack(1)
629 Push objects over Git protocol to another repository.
630
631 git-update-server-info(1)
632 Update auxiliary info file to help dumb servers.
633
634 The following are helper commands used by the above; end users
635 typically do not use them directly.
636
637 git-http-fetch(1)
638 Download from a remote Git repository via HTTP.
639
640 git-http-push(1)
641 Push objects over HTTP/DAV to another repository.
642
643 git-receive-pack(1)
644 Receive what is pushed into the repository.
645
646 git-shell(1)
647 Restricted login shell for Git-only SSH access.
648
649 git-upload-archive(1)
650 Send archive back to git-archive.
651
652 git-upload-pack(1)
653 Send objects packed back to git-fetch-pack.
654
655 Internal helper commands
656 These are internal helper commands used by other commands; end users
657 typically do not use them directly.
658
659 git-check-attr(1)
660 Display gitattributes information.
661
662 git-check-ignore(1)
663 Debug gitignore / exclude files.
664
665 git-check-mailmap(1)
666 Show canonical names and email addresses of contacts.
667
668 git-check-ref-format(1)
669 Ensures that a reference name is well formed.
670
671 git-column(1)
672 Display data in columns.
673
674 git-credential(1)
675 Retrieve and store user credentials.
676
677 git-credential-cache(1)
678 Helper to temporarily store passwords in memory.
679
680 git-credential-store(1)
681 Helper to store credentials on disk.
682
683 git-fmt-merge-msg(1)
684 Produce a merge commit message.
685
686 git-hook(1)
687 Run git hooks.
688
689 git-interpret-trailers(1)
690 Add or parse structured information in commit messages.
691
692 git-mailinfo(1)
693 Extracts patch and authorship from a single e-mail message.
694
695 git-mailsplit(1)
696 Simple UNIX mbox splitter program.
697
698 git-merge-one-file(1)
699 The standard helper program to use with git-merge-index.
700
701 git-patch-id(1)
702 Compute unique ID for a patch.
703
704 git-sh-i18n(1)
705 Git’s i18n setup code for shell scripts.
706
707 git-sh-setup(1)
708 Common Git shell script setup code.
709
710 git-stripspace(1)
711 Remove unnecessary whitespace.
712
714 The following documentation pages are guides about Git concepts.
715
716 gitattributes(5)
717 Defining attributes per path.
718
719 gitcli(7)
720 Git command-line interface and conventions.
721
722 gitcore-tutorial(7)
723 A Git core tutorial for developers.
724
725 gitcredentials(7)
726 Providing usernames and passwords to Git.
727
728 gitcvs-migration(7)
729 Git for CVS users.
730
731 gitdiffcore(7)
732 Tweaking diff output.
733
734 giteveryday(7)
735 A useful minimum set of commands for Everyday Git.
736
737 gitfaq(7)
738 Frequently asked questions about using Git.
739
740 gitglossary(7)
741 A Git Glossary.
742
743 githooks(5)
744 Hooks used by Git.
745
746 gitignore(5)
747 Specifies intentionally untracked files to ignore.
748
749 gitmailmap(5)
750 Map author/committer names and/or E-Mail addresses.
751
752 gitmodules(5)
753 Defining submodule properties.
754
755 gitnamespaces(7)
756 Git namespaces.
757
758 gitremote-helpers(7)
759 Helper programs to interact with remote repositories.
760
761 gitrepository-layout(5)
762 Git Repository Layout.
763
764 gitrevisions(7)
765 Specifying revisions and ranges for Git.
766
767 gitsubmodules(7)
768 Mounting one repository inside another.
769
770 gittutorial(7)
771 A tutorial introduction to Git.
772
773 gittutorial-2(7)
774 A tutorial introduction to Git: part two.
775
776 gitworkflows(7)
777 An overview of recommended workflows with Git.
778
780 Git uses a simple text format to store customizations that are per
781 repository and are per user. Such a configuration file may look like
782 this:
783
784 #
785 # A '#' or ';' character indicates a comment.
786 #
787
788 ; core variables
789 [core]
790 ; Don't trust file modes
791 filemode = false
792
793 ; user identity
794 [user]
795 name = "Junio C Hamano"
796 email = "gitster@pobox.com"
797
798 Various commands read from the configuration file and adjust their
799 operation accordingly. See git-config(1) for a list and more details
800 about the configuration mechanism.
801
803 <object>
804 Indicates the object name for any type of object.
805
806 <blob>
807 Indicates a blob object name.
808
809 <tree>
810 Indicates a tree object name.
811
812 <commit>
813 Indicates a commit object name.
814
815 <tree-ish>
816 Indicates a tree, commit or tag object name. A command that takes a
817 <tree-ish> argument ultimately wants to operate on a <tree> object
818 but automatically dereferences <commit> and <tag> objects that
819 point at a <tree>.
820
821 <commit-ish>
822 Indicates a commit or tag object name. A command that takes a
823 <commit-ish> argument ultimately wants to operate on a <commit>
824 object but automatically dereferences <tag> objects that point at a
825 <commit>.
826
827 <type>
828 Indicates that an object type is required. Currently one of: blob,
829 tree, commit, or tag.
830
831 <file>
832 Indicates a filename - almost always relative to the root of the
833 tree structure GIT_INDEX_FILE describes.
834
836 Any Git command accepting any <object> can also use the following
837 symbolic notation:
838
839 HEAD
840 indicates the head of the current branch.
841
842 <tag>
843 a valid tag name (i.e. a refs/tags/<tag> reference).
844
845 <head>
846 a valid head name (i.e. a refs/heads/<head> reference).
847
848 For a more complete list of ways to spell object names, see "SPECIFYING
849 REVISIONS" section in gitrevisions(7).
850
852 Please see the gitrepository-layout(5) document.
853
854 Read githooks(5) for more details about each hook.
855
856 Higher level SCMs may provide and manage additional information in the
857 $GIT_DIR.
858
860 Please see gitglossary(7).
861
863 Various Git commands use the following environment variables:
864
865 The Git Repository
866 These environment variables apply to all core Git commands. Nb: it is
867 worth noting that they may be used/overridden by SCMS sitting above Git
868 so take care if using a foreign front-end.
869
870 GIT_INDEX_FILE
871 This environment allows the specification of an alternate index
872 file. If not specified, the default of $GIT_DIR/index is used.
873
874 GIT_INDEX_VERSION
875 This environment variable allows the specification of an index
876 version for new repositories. It won’t affect existing index files.
877 By default index file version 2 or 3 is used. See git-update-
878 index(1) for more information.
879
880 GIT_OBJECT_DIRECTORY
881 If the object storage directory is specified via this environment
882 variable then the sha1 directories are created underneath -
883 otherwise the default $GIT_DIR/objects directory is used.
884
885 GIT_ALTERNATE_OBJECT_DIRECTORIES
886 Due to the immutable nature of Git objects, old objects can be
887 archived into shared, read-only directories. This variable
888 specifies a ":" separated (on Windows ";" separated) list of Git
889 object directories which can be used to search for Git objects. New
890 objects will not be written to these directories.
891
892 Entries that begin with " (double-quote) will be interpreted as
893 C-style quoted paths, removing leading and trailing double-quotes
894 and respecting backslash escapes. E.g., the value
895 "path-with-\"-and-:-in-it":vanilla-path has two paths:
896 path-with-"-and-:-in-it and vanilla-path.
897
898 GIT_DIR
899 If the GIT_DIR environment variable is set then it specifies a path
900 to use instead of the default .git for the base of the repository.
901 The --git-dir command-line option also sets this value.
902
903 GIT_WORK_TREE
904 Set the path to the root of the working tree. This can also be
905 controlled by the --work-tree command-line option and the
906 core.worktree configuration variable.
907
908 GIT_NAMESPACE
909 Set the Git namespace; see gitnamespaces(7) for details. The
910 --namespace command-line option also sets this value.
911
912 GIT_CEILING_DIRECTORIES
913 This should be a colon-separated list of absolute paths. If set, it
914 is a list of directories that Git should not chdir up into while
915 looking for a repository directory (useful for excluding
916 slow-loading network directories). It will not exclude the current
917 working directory or a GIT_DIR set on the command line or in the
918 environment. Normally, Git has to read the entries in this list and
919 resolve any symlink that might be present in order to compare them
920 with the current directory. However, if even this access is slow,
921 you can add an empty entry to the list to tell Git that the
922 subsequent entries are not symlinks and needn’t be resolved; e.g.,
923 GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink.
924
925 GIT_DISCOVERY_ACROSS_FILESYSTEM
926 When run in a directory that does not have ".git" repository
927 directory, Git tries to find such a directory in the parent
928 directories to find the top of the working tree, but by default it
929 does not cross filesystem boundaries. This environment variable can
930 be set to true to tell Git not to stop at filesystem boundaries.
931 Like GIT_CEILING_DIRECTORIES, this will not affect an explicit
932 repository directory set via GIT_DIR or on the command line.
933
934 GIT_COMMON_DIR
935 If this variable is set to a path, non-worktree files that are
936 normally in $GIT_DIR will be taken from this path instead.
937 Worktree-specific files such as HEAD or index are taken from
938 $GIT_DIR. See gitrepository-layout(5) and git-worktree(1) for
939 details. This variable has lower precedence than other path
940 variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY...
941
942 GIT_DEFAULT_HASH
943 If this variable is set, the default hash algorithm for new
944 repositories will be set to this value. This value is currently
945 ignored when cloning; the setting of the remote repository is used
946 instead. The default is "sha1". THIS VARIABLE IS EXPERIMENTAL! See
947 --object-format in git-init(1).
948
949 Git Commits
950 GIT_AUTHOR_NAME
951 The human-readable name used in the author identity when creating
952 commit or tag objects, or when writing reflogs. Overrides the
953 user.name and author.name configuration settings.
954
955 GIT_AUTHOR_EMAIL
956 The email address used in the author identity when creating commit
957 or tag objects, or when writing reflogs. Overrides the user.email
958 and author.email configuration settings.
959
960 GIT_AUTHOR_DATE
961 The date used for the author identity when creating commit or tag
962 objects, or when writing reflogs. See git-commit(1) for valid
963 formats.
964
965 GIT_COMMITTER_NAME
966 The human-readable name used in the committer identity when
967 creating commit or tag objects, or when writing reflogs. Overrides
968 the user.name and committer.name configuration settings.
969
970 GIT_COMMITTER_EMAIL
971 The email address used in the author identity when creating commit
972 or tag objects, or when writing reflogs. Overrides the user.email
973 and committer.email configuration settings.
974
975 GIT_COMMITTER_DATE
976 The date used for the committer identity when creating commit or
977 tag objects, or when writing reflogs. See git-commit(1) for valid
978 formats.
979
980 EMAIL
981 The email address used in the author and committer identities if no
982 other relevant environment variable or configuration setting has
983 been set.
984
985 Git Diffs
986 GIT_DIFF_OPTS
987 Only valid setting is "--unified=??" or "-u??" to set the number of
988 context lines shown when a unified diff is created. This takes
989 precedence over any "-U" or "--unified" option value passed on the
990 Git diff command line.
991
992 GIT_EXTERNAL_DIFF
993 When the environment variable GIT_EXTERNAL_DIFF is set, the program
994 named by it is called to generate diffs, and Git does not use its
995 builtin diff machinery. For a path that is added, removed, or
996 modified, GIT_EXTERNAL_DIFF is called with 7 parameters:
997
998 path old-file old-hex old-mode new-file new-hex new-mode
999
1000 where:
1001
1002 <old|new>-file
1003 are files GIT_EXTERNAL_DIFF can use to read the contents of
1004 <old|new>,
1005
1006 <old|new>-hex
1007 are the 40-hexdigit SHA-1 hashes,
1008
1009 <old|new>-mode
1010 are the octal representation of the file modes.
1011
1012 The file parameters can point at the user’s working file (e.g.
1013 new-file in "git-diff-files"), /dev/null (e.g. old-file when a new
1014 file is added), or a temporary file (e.g. old-file in the index).
1015 GIT_EXTERNAL_DIFF should not worry about unlinking the temporary
1016 file --- it is removed when GIT_EXTERNAL_DIFF exits.
1017
1018 For a path that is unmerged, GIT_EXTERNAL_DIFF is called with 1
1019 parameter, <path>.
1020
1021 For each path GIT_EXTERNAL_DIFF is called, two environment
1022 variables, GIT_DIFF_PATH_COUNTER and GIT_DIFF_PATH_TOTAL are set.
1023
1024 GIT_DIFF_PATH_COUNTER
1025 A 1-based counter incremented by one for every path.
1026
1027 GIT_DIFF_PATH_TOTAL
1028 The total number of paths.
1029
1030 other
1031 GIT_MERGE_VERBOSITY
1032 A number controlling the amount of output shown by the recursive
1033 merge strategy. Overrides merge.verbosity. See git-merge(1)
1034
1035 GIT_PAGER
1036 This environment variable overrides $PAGER. If it is set to an
1037 empty string or to the value "cat", Git will not launch a pager.
1038 See also the core.pager option in git-config(1).
1039
1040 GIT_PROGRESS_DELAY
1041 A number controlling how many seconds to delay before showing
1042 optional progress indicators. Defaults to 2.
1043
1044 GIT_EDITOR
1045 This environment variable overrides $EDITOR and $VISUAL. It is used
1046 by several Git commands when, on interactive mode, an editor is to
1047 be launched. See also git-var(1) and the core.editor option in git-
1048 config(1).
1049
1050 GIT_SEQUENCE_EDITOR
1051 This environment variable overrides the configured Git editor when
1052 editing the todo list of an interactive rebase. See also git-
1053 rebase(1) and the sequence.editor option in git-config(1).
1054
1055 GIT_SSH, GIT_SSH_COMMAND
1056 If either of these environment variables is set then git fetch and
1057 git push will use the specified command instead of ssh when they
1058 need to connect to a remote system. The command-line parameters
1059 passed to the configured command are determined by the ssh variant.
1060 See ssh.variant option in git-config(1) for details.
1061
1062 $GIT_SSH_COMMAND takes precedence over $GIT_SSH, and is interpreted
1063 by the shell, which allows additional arguments to be included.
1064 $GIT_SSH on the other hand must be just the path to a program
1065 (which can be a wrapper shell script, if additional arguments are
1066 needed).
1067
1068 Usually it is easier to configure any desired options through your
1069 personal .ssh/config file. Please consult your ssh documentation
1070 for further details.
1071
1072 GIT_SSH_VARIANT
1073 If this environment variable is set, it overrides Git’s
1074 autodetection whether GIT_SSH/GIT_SSH_COMMAND/core.sshCommand refer
1075 to OpenSSH, plink or tortoiseplink. This variable overrides the
1076 config setting ssh.variant that serves the same purpose.
1077
1078 GIT_ASKPASS
1079 If this environment variable is set, then Git commands which need
1080 to acquire passwords or passphrases (e.g. for HTTP or IMAP
1081 authentication) will call this program with a suitable prompt as
1082 command-line argument and read the password from its STDOUT. See
1083 also the core.askPass option in git-config(1).
1084
1085 GIT_TERMINAL_PROMPT
1086 If this environment variable is set to 0, git will not prompt on
1087 the terminal (e.g., when asking for HTTP authentication).
1088
1089 GIT_CONFIG_GLOBAL, GIT_CONFIG_SYSTEM
1090 Take the configuration from the given files instead from global or
1091 system-level configuration files. If GIT_CONFIG_SYSTEM is set, the
1092 system config file defined at build time (usually /etc/gitconfig)
1093 will not be read. Likewise, if GIT_CONFIG_GLOBAL is set, neither
1094 $HOME/.gitconfig nor $XDG_CONFIG_HOME/git/config will be read. Can
1095 be set to /dev/null to skip reading configuration files of the
1096 respective level.
1097
1098 GIT_CONFIG_NOSYSTEM
1099 Whether to skip reading settings from the system-wide
1100 $(prefix)/etc/gitconfig file. This environment variable can be used
1101 along with $HOME and $XDG_CONFIG_HOME to create a predictable
1102 environment for a picky script, or you can set it temporarily to
1103 avoid using a buggy /etc/gitconfig file while waiting for someone
1104 with sufficient permissions to fix it.
1105
1106 GIT_FLUSH
1107 If this environment variable is set to "1", then commands such as
1108 git blame (in incremental mode), git rev-list, git log, git
1109 check-attr and git check-ignore will force a flush of the output
1110 stream after each record have been flushed. If this variable is set
1111 to "0", the output of these commands will be done using completely
1112 buffered I/O. If this environment variable is not set, Git will
1113 choose buffered or record-oriented flushing based on whether stdout
1114 appears to be redirected to a file or not.
1115
1116 GIT_TRACE
1117 Enables general trace messages, e.g. alias expansion, built-in
1118 command execution and external command execution.
1119
1120 If this variable is set to "1", "2" or "true" (comparison is case
1121 insensitive), trace messages will be printed to stderr.
1122
1123 If the variable is set to an integer value greater than 2 and lower
1124 than 10 (strictly) then Git will interpret this value as an open
1125 file descriptor and will try to write the trace messages into this
1126 file descriptor.
1127
1128 Alternatively, if the variable is set to an absolute path (starting
1129 with a / character), Git will interpret this as a file path and
1130 will try to append the trace messages to it.
1131
1132 Unsetting the variable, or setting it to empty, "0" or "false"
1133 (case insensitive) disables trace messages.
1134
1135 GIT_TRACE_FSMONITOR
1136 Enables trace messages for the filesystem monitor extension. See
1137 GIT_TRACE for available trace output options.
1138
1139 GIT_TRACE_PACK_ACCESS
1140 Enables trace messages for all accesses to any packs. For each
1141 access, the pack file name and an offset in the pack is recorded.
1142 This may be helpful for troubleshooting some pack-related
1143 performance problems. See GIT_TRACE for available trace output
1144 options.
1145
1146 GIT_TRACE_PACKET
1147 Enables trace messages for all packets coming in or out of a given
1148 program. This can help with debugging object negotiation or other
1149 protocol issues. Tracing is turned off at a packet starting with
1150 "PACK" (but see GIT_TRACE_PACKFILE below). See GIT_TRACE for
1151 available trace output options.
1152
1153 GIT_TRACE_PACKFILE
1154 Enables tracing of packfiles sent or received by a given program.
1155 Unlike other trace output, this trace is verbatim: no headers, and
1156 no quoting of binary data. You almost certainly want to direct into
1157 a file (e.g., GIT_TRACE_PACKFILE=/tmp/my.pack) rather than
1158 displaying it on the terminal or mixing it with other trace output.
1159
1160 Note that this is currently only implemented for the client side of
1161 clones and fetches.
1162
1163 GIT_TRACE_PERFORMANCE
1164 Enables performance related trace messages, e.g. total execution
1165 time of each Git command. See GIT_TRACE for available trace output
1166 options.
1167
1168 GIT_TRACE_REFS
1169 Enables trace messages for operations on the ref database. See
1170 GIT_TRACE for available trace output options.
1171
1172 GIT_TRACE_SETUP
1173 Enables trace messages printing the .git, working tree and current
1174 working directory after Git has completed its setup phase. See
1175 GIT_TRACE for available trace output options.
1176
1177 GIT_TRACE_SHALLOW
1178 Enables trace messages that can help debugging fetching / cloning
1179 of shallow repositories. See GIT_TRACE for available trace output
1180 options.
1181
1182 GIT_TRACE_CURL
1183 Enables a curl full trace dump of all incoming and outgoing data,
1184 including descriptive information, of the git transport protocol.
1185 This is similar to doing curl --trace-ascii on the command line.
1186 See GIT_TRACE for available trace output options.
1187
1188 GIT_TRACE_CURL_NO_DATA
1189 When a curl trace is enabled (see GIT_TRACE_CURL above), do not
1190 dump data (that is, only dump info lines and headers).
1191
1192 GIT_TRACE2
1193 Enables more detailed trace messages from the "trace2" library.
1194 Output from GIT_TRACE2 is a simple text-based format for human
1195 readability.
1196
1197 If this variable is set to "1", "2" or "true" (comparison is case
1198 insensitive), trace messages will be printed to stderr.
1199
1200 If the variable is set to an integer value greater than 2 and lower
1201 than 10 (strictly) then Git will interpret this value as an open
1202 file descriptor and will try to write the trace messages into this
1203 file descriptor.
1204
1205 Alternatively, if the variable is set to an absolute path (starting
1206 with a / character), Git will interpret this as a file path and
1207 will try to append the trace messages to it. If the path already
1208 exists and is a directory, the trace messages will be written to
1209 files (one per process) in that directory, named according to the
1210 last component of the SID and an optional counter (to avoid
1211 filename collisions).
1212
1213 In addition, if the variable is set to
1214 af_unix:[<socket_type>:]<absolute-pathname>, Git will try to open
1215 the path as a Unix Domain Socket. The socket type can be either
1216 stream or dgram.
1217
1218 Unsetting the variable, or setting it to empty, "0" or "false"
1219 (case insensitive) disables trace messages.
1220
1221 See Trace2 documentation[2] for full details.
1222
1223 GIT_TRACE2_EVENT
1224 This setting writes a JSON-based format that is suited for machine
1225 interpretation. See GIT_TRACE2 for available trace output options
1226 and Trace2 documentation[2] for full details.
1227
1228 GIT_TRACE2_PERF
1229 In addition to the text-based messages available in GIT_TRACE2,
1230 this setting writes a column-based format for understanding nesting
1231 regions. See GIT_TRACE2 for available trace output options and
1232 Trace2 documentation[2] for full details.
1233
1234 GIT_TRACE_REDACT
1235 By default, when tracing is activated, Git redacts the values of
1236 cookies, the "Authorization:" header, the "Proxy-Authorization:"
1237 header and packfile URIs. Set this variable to 0 to prevent this
1238 redaction.
1239
1240 GIT_LITERAL_PATHSPECS
1241 Setting this variable to 1 will cause Git to treat all pathspecs
1242 literally, rather than as glob patterns. For example, running
1243 GIT_LITERAL_PATHSPECS=1 git log -- '*.c' will search for commits
1244 that touch the path *.c, not any paths that the glob *.c matches.
1245 You might want this if you are feeding literal paths to Git (e.g.,
1246 paths previously given to you by git ls-tree, --raw diff output,
1247 etc).
1248
1249 GIT_GLOB_PATHSPECS
1250 Setting this variable to 1 will cause Git to treat all pathspecs as
1251 glob patterns (aka "glob" magic).
1252
1253 GIT_NOGLOB_PATHSPECS
1254 Setting this variable to 1 will cause Git to treat all pathspecs as
1255 literal (aka "literal" magic).
1256
1257 GIT_ICASE_PATHSPECS
1258 Setting this variable to 1 will cause Git to treat all pathspecs as
1259 case-insensitive.
1260
1261 GIT_REFLOG_ACTION
1262 When a ref is updated, reflog entries are created to keep track of
1263 the reason why the ref was updated (which is typically the name of
1264 the high-level command that updated the ref), in addition to the
1265 old and new values of the ref. A scripted Porcelain command can use
1266 set_reflog_action helper function in git-sh-setup to set its name
1267 to this variable when it is invoked as the top level command by the
1268 end user, to be recorded in the body of the reflog.
1269
1270 GIT_REF_PARANOIA
1271 If set to 0, ignore broken or badly named refs when iterating over
1272 lists of refs. Normally Git will try to include any such refs,
1273 which may cause some operations to fail. This is usually
1274 preferable, as potentially destructive operations (e.g., git-
1275 prune(1)) are better off aborting rather than ignoring broken refs
1276 (and thus considering the history they point to as not worth
1277 saving). The default value is 1 (i.e., be paranoid about detecting
1278 and aborting all operations). You should not normally need to set
1279 this to 0, but it may be useful when trying to salvage data from a
1280 corrupted repository.
1281
1282 GIT_ALLOW_PROTOCOL
1283 If set to a colon-separated list of protocols, behave as if
1284 protocol.allow is set to never, and each of the listed protocols
1285 has protocol.<name>.allow set to always (overriding any existing
1286 configuration). In other words, any protocol not mentioned will be
1287 disallowed (i.e., this is a whitelist, not a blacklist). See the
1288 description of protocol.allow in git-config(1) for more details.
1289
1290 GIT_PROTOCOL_FROM_USER
1291 Set to 0 to prevent protocols used by fetch/push/clone which are
1292 configured to the user state. This is useful to restrict recursive
1293 submodule initialization from an untrusted repository or for
1294 programs which feed potentially-untrusted URLS to git commands. See
1295 git-config(1) for more details.
1296
1297 GIT_PROTOCOL
1298 For internal use only. Used in handshaking the wire protocol.
1299 Contains a colon : separated list of keys with optional values
1300 key[=value]. Presence of unknown keys and values must be ignored.
1301
1302 Note that servers may need to be configured to allow this variable
1303 to pass over some transports. It will be propagated automatically
1304 when accessing local repositories (i.e., file:// or a filesystem
1305 path), as well as over the git:// protocol. For git-over-http, it
1306 should work automatically in most configurations, but see the
1307 discussion in git-http-backend(1). For git-over-ssh, the ssh server
1308 may need to be configured to allow clients to pass this variable
1309 (e.g., by using AcceptEnv GIT_PROTOCOL with OpenSSH).
1310
1311 This configuration is optional. If the variable is not propagated,
1312 then clients will fall back to the original "v0" protocol (but may
1313 miss out on some performance improvements or features). This
1314 variable currently only affects clones and fetches; it is not yet
1315 used for pushes (but may be in the future).
1316
1317 GIT_OPTIONAL_LOCKS
1318 If set to 0, Git will complete any requested operation without
1319 performing any optional sub-operations that require taking a lock.
1320 For example, this will prevent git status from refreshing the index
1321 as a side effect. This is useful for processes running in the
1322 background which do not want to cause lock contention with other
1323 operations on the repository. Defaults to 1.
1324
1325 GIT_REDIRECT_STDIN, GIT_REDIRECT_STDOUT, GIT_REDIRECT_STDERR
1326 Windows-only: allow redirecting the standard input/output/error
1327 handles to paths specified by the environment variables. This is
1328 particularly useful in multi-threaded applications where the
1329 canonical way to pass standard handles via CreateProcess() is not
1330 an option because it would require the handles to be marked
1331 inheritable (and consequently every spawned process would inherit
1332 them, possibly blocking regular Git operations). The primary
1333 intended use case is to use named pipes for communication (e.g.
1334 \\.\pipe\my-git-stdin-123).
1335
1336 Two special values are supported: off will simply close the
1337 corresponding standard handle, and if GIT_REDIRECT_STDERR is 2>&1,
1338 standard error will be redirected to the same handle as standard
1339 output.
1340
1341 GIT_PRINT_SHA1_ELLIPSIS (deprecated)
1342 If set to yes, print an ellipsis following an (abbreviated) SHA-1
1343 value. This affects indications of detached HEADs (git-checkout(1))
1344 and the raw diff output (git-diff(1)). Printing an ellipsis in the
1345 cases mentioned is no longer considered adequate and support for it
1346 is likely to be removed in the foreseeable future (along with the
1347 variable).
1348
1350 More detail on the following is available from the Git concepts chapter
1351 of the user-manual[3] and gitcore-tutorial(7).
1352
1353 A Git project normally consists of a working directory with a ".git"
1354 subdirectory at the top level. The .git directory contains, among other
1355 things, a compressed object database representing the complete history
1356 of the project, an "index" file which links that history to the current
1357 contents of the working tree, and named pointers into that history such
1358 as tags and branch heads.
1359
1360 The object database contains objects of three main types: blobs, which
1361 hold file data; trees, which point to blobs and other trees to build up
1362 directory hierarchies; and commits, which each reference a single tree
1363 and some number of parent commits.
1364
1365 The commit, equivalent to what other systems call a "changeset" or
1366 "version", represents a step in the project’s history, and each parent
1367 represents an immediately preceding step. Commits with more than one
1368 parent represent merges of independent lines of development.
1369
1370 All objects are named by the SHA-1 hash of their contents, normally
1371 written as a string of 40 hex digits. Such names are globally unique.
1372 The entire history leading up to a commit can be vouched for by signing
1373 just that commit. A fourth object type, the tag, is provided for this
1374 purpose.
1375
1376 When first created, objects are stored in individual files, but for
1377 efficiency may later be compressed together into "pack files".
1378
1379 Named pointers called refs mark interesting points in history. A ref
1380 may contain the SHA-1 name of an object or the name of another ref.
1381 Refs with names beginning ref/head/ contain the SHA-1 name of the most
1382 recent commit (or "head") of a branch under development. SHA-1 names of
1383 tags of interest are stored under ref/tags/. A special ref named HEAD
1384 contains the name of the currently checked-out branch.
1385
1386 The index file is initialized with a list of all paths and, for each
1387 path, a blob object and a set of attributes. The blob object represents
1388 the contents of the file as of the head of the current branch. The
1389 attributes (last modified time, size, etc.) are taken from the
1390 corresponding file in the working tree. Subsequent changes to the
1391 working tree can be found by comparing these attributes. The index may
1392 be updated with new content, and new commits may be created from the
1393 content stored in the index.
1394
1395 The index is also capable of storing multiple entries (called "stages")
1396 for a given pathname. These stages are used to hold the various
1397 unmerged version of a file when a merge is in progress.
1398
1400 See the references in the "description" section to get started using
1401 Git. The following is probably more detail than necessary for a
1402 first-time user.
1403
1404 The Git concepts chapter of the user-manual[3] and gitcore-tutorial(7)
1405 both provide introductions to the underlying Git architecture.
1406
1407 See gitworkflows(7) for an overview of recommended workflows.
1408
1409 See also the howto[4] documents for some useful examples.
1410
1411 The internals are documented in the Git API documentation[5].
1412
1413 Users migrating from CVS may also want to read gitcvs-migration(7).
1414
1416 Git was started by Linus Torvalds, and is currently maintained by Junio
1417 C Hamano. Numerous contributions have come from the Git mailing list
1418 <git@vger.kernel.org[6]>.
1419 http://www.openhub.net/p/git/contributors/summary gives you a more
1420 complete list of contributors.
1421
1422 If you have a clone of git.git itself, the output of git-shortlog(1)
1423 and git-blame(1) can show you the authors for specific parts of the
1424 project.
1425
1427 Report bugs to the Git mailing list <git@vger.kernel.org[6]> where the
1428 development and maintenance is primarily done. You do not have to be
1429 subscribed to the list to send a message there. See the list archive at
1430 https://lore.kernel.org/git for previous bug reports and other
1431 discussions.
1432
1433 Issues which are security relevant should be disclosed privately to the
1434 Git Security mailing list <git-security@googlegroups.com[7]>.
1435
1437 gittutorial(7), gittutorial-2(7), giteveryday(7), gitcvs-migration(7),
1438 gitglossary(7), gitcore-tutorial(7), gitcli(7), The Git User’s
1439 Manual[1], gitworkflows(7)
1440
1442 Part of the git(1) suite
1443
1445 1. Git User’s Manual
1446 file:///usr/share/doc/git/user-manual.html
1447
1448 2. Trace2 documentation
1449 file:///usr/share/doc/git/technical/api-trace2.html
1450
1451 3. Git concepts chapter of the user-manual
1452 file:///usr/share/doc/git/user-manual.html#git-concepts
1453
1454 4. howto
1455 file:///usr/share/doc/git/howto-index.html
1456
1457 5. Git API documentation
1458 file:///usr/share/doc/git/technical/api-index.html
1459
1460 6. git@vger.kernel.org
1461 mailto:git@vger.kernel.org
1462
1463 7. git-security@googlegroups.com
1464 mailto:git-security@googlegroups.com
1465
1466
1467
1468Git 2.36.1 2022-05-05 GIT(1)