Find a file
Nguyễn Thái Ngọc Duy f318d73915 generate-cmds.sh: export all commands to command-list.h
The current generate-cmds.sh generates just enough to print "git help"
output. That is, it only extracts help text for common commands.

The script is now updated to extract help text for all commands and
keep command classification a new file, command-list.h. This will be
useful later:

- "git help -a" could print a short summary of all commands instead of
  just the common ones.

- "git" could produce a list of commands of one or more category. One
  of its use is to reduce another command classification embedded in
  git-completion.bash.

The new file can be generated but is not used anywhere yet. The plan
is we migrate away from common-cmds.h. Then we can kill off
common-cmds.h build rules and generation code (and also delete
duplicate content in command-list.h which we keep for now to not mess
generate-cmds.sh up too much).

PS. The new fixed column requirement on command-list.txt is
technically not needed. But it helps simplify the code a bit at this
stage. We could lift this restriction later if we want to.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-05-10 19:52:47 +09:00
.github
block-sha1
builtin Merge branch 'rs/status-with-removed-submodule' 2018-04-11 13:09:56 +09:00
ci Merge branch 'tg/split-index-fixes' into maint 2018-03-22 14:24:10 -07:00
compat mingw: abort on invalid strftime formats 2018-03-19 10:53:17 -07:00
contrib Merge branch 'ab/drop-contrib-examples' 2018-04-11 13:09:54 +09:00
Documentation Merge branch 'svn/authors-prog-2' of git://bogomips.org/git-svn 2018-04-12 08:05:28 +09:00
ewah
git-gui
gitk-git
gitweb gitweb: hard-depend on the Digest::MD5 5.8 module 2018-03-05 10:52:27 -08:00
mergetools
perl git-svn: allow empty email-address using authors-prog and authors-file 2018-04-05 19:22:06 +00:00
po l10n: de.po: translate 132 new messages 2018-03-31 13:21:09 +02:00
ppc
refs Merge branch 'mr/packed-ref-store-fix' into maint 2018-03-22 14:24:10 -07:00
sha1collisiondetection@19d97bf5af
sha1dc
t Merge branch 'svn/authors-prog-2' of git://bogomips.org/git-svn 2018-04-12 08:05:28 +09:00
templates
vcs-svn
xdiff
.clang-format
.gitattributes
.gitignore generate-cmds.sh: export all commands to command-list.h 2018-05-10 19:52:47 +09:00
.gitmodules
.mailmap
.travis.yml
.tsan-suppressions
abspath.c
aclocal.m4
advice.c
advice.h
alias.c
alloc.c
apply.c Merge branch 'bc/object-id' 2018-04-10 08:25:45 +09:00
apply.h
archive-tar.c sha1_file: convert sha1_object_info* to object_id 2018-03-14 09:23:49 -07:00
archive-zip.c sha1_file: convert sha1_object_info* to object_id 2018-03-14 09:23:49 -07:00
archive.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
archive.h archive: convert sha1_file_to_archive to struct object_id 2018-03-14 09:23:48 -07:00
argv-array.c
argv-array.h
attr.c
attr.h
base85.c
bisect.c Merge branch 'ys/bisect-object-id-missing-conversion-fix' 2018-04-10 16:28:24 +09:00
bisect.h
blame.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
blame.h
blob.c
blob.h
branch.c
branch.h
builtin.h
bulk-checkin.c Merge branch 'sb/packfiles-in-repository' 2018-04-11 13:09:55 +09:00
bulk-checkin.h bulk-checkin: convert index_bulk_checkin to struct object_id 2018-03-14 09:23:47 -07:00
bundle.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
bundle.h
cache-tree.c Merge branch 'tg/split-index-fixes' into maint 2018-03-22 14:24:10 -07:00
cache-tree.h cache-tree: convert write_*_as_tree to object_id 2018-03-14 09:23:47 -07:00
cache.h Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
check-builtins.sh
check-racy.c
check_bindir
checkout.c
checkout.h
color.c color.h: document and modernize header 2018-02-13 10:17:12 -08:00
color.h color.h: document and modernize header 2018-02-13 10:17:12 -08:00
column.c
column.h
combine-diff.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
command-list.txt generate-cmds.sh: export all commands to command-list.h 2018-05-10 19:52:47 +09:00
commit-slab.h
commit.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
commit.h Merge branch 'rs/lose-leak-pending' into maint 2018-02-15 15:18:11 -08:00
common-main.c repository: initialize the_repository in main() 2018-03-05 11:14:03 -08:00
config.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
config.h
config.mak.in
config.mak.uname config.mak.uname: remove SPARSE_FLAGS setting for cygwin 2018-02-12 12:19:18 -08:00
configure.ac Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1 2018-03-14 15:27:50 -07:00
connect.c
connect.h
connected.c Merge branch 'jh/partial-clone' 2018-02-13 13:39:04 -08:00
connected.h
convert.c convert: convert to struct object_id 2018-03-14 09:23:50 -07:00
convert.h convert: convert to struct object_id 2018-03-14 09:23:50 -07:00
copy.c
COPYING
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c credential: ignore SIGPIPE when writing to credential helpers 2018-03-29 15:33:55 -07:00
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c Merge branch 'lw/daemon-log-destination' 2018-02-21 12:45:04 -08:00
date.c
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c Merge branch 'bw/c-plus-plus' 2018-03-06 14:54:07 -08:00
diff-no-index.c
diff.c Merge branch 'bc/object-id' 2018-04-10 08:25:45 +09:00
diff.h Merge branch 'nd/diff-stat-with-summary' 2018-03-14 12:01:02 -07:00
diffcore-break.c
diffcore-delta.c diffcore-delta: rename 'new' variables 2018-02-22 10:08:05 -08:00
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c Merge branch 'po/object-id' 2018-02-15 14:55:43 -08:00
diffcore.h
dir-iterator.c
dir-iterator.h
dir.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
dir.h Merge branch 'nd/fix-untracked-cache-invalidation' 2018-02-27 10:33:50 -08:00
editor.c
entry.c convert: convert to struct object_id 2018-03-14 09:23:50 -07:00
environment.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
exec_cmd.c
exec_cmd.h
fast-import.c Merge branch 'sb/packfiles-in-repository' 2018-04-11 13:09:55 +09:00
fetch-object.c
fetch-object.h
fetch-pack.c Merge branch 'sb/packfiles-in-repository' 2018-04-11 13:09:55 +09:00
fetch-pack.h
fmt-merge-msg.h
fsck.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
fsck.h
fsmonitor.c
fsmonitor.h
generate-cmdlist.sh generate-cmds.sh: export all commands to command-list.h 2018-05-10 19:52:47 +09:00
gettext.c
gettext.h
git-add--interactive.perl Merge branch 'pw/add-p-single' 2018-04-02 10:10:55 -07:00
git-archimport.perl
git-bisect.sh
git-compat-util.h wrapper: rename 'template' variables 2018-02-22 10:08:05 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl perl: call timegm and timelocal with 4-digit year 2018-02-23 14:47:06 -08:00
git-cvsserver.perl
git-difftool--helper.sh
git-filter-branch.sh Merge branch 'yk/filter-branch-non-committish-refs' 2018-04-10 16:28:23 +09:00
git-instaweb.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-p4.py
git-parse-remote.sh
git-quiltimport.sh
git-rebase--am.sh rebase: update invocation of rebase dot-sourced scripts 2018-03-23 15:08:49 -07:00
git-rebase--interactive.sh rebase: remove merges_option and a blank line 2018-03-23 15:28:24 -07:00
git-rebase--merge.sh rebase: update invocation of rebase dot-sourced scripts 2018-03-23 15:08:49 -07:00
git-rebase.sh rebase: add and use git_rebase__interactive__preserve_merges 2018-03-23 15:28:06 -07:00
git-remote-testgit.sh
git-request-pull.sh
git-send-email.perl Merge branch 'ab/perl-fixes' 2018-03-15 15:00:46 -07:00
git-sh-i18n.sh
git-sh-setup.sh
git-stash.sh Merge branch 'tg/stash-untracked-with-pathspec-fix' 2018-04-10 08:25:45 +09:00
git-submodule.sh
git-svn.perl git-svn: search --authors-prog in PATH too 2018-04-05 06:55:02 +00:00
GIT-VERSION-GEN The first batch for 2.18 cycle 2018-04-10 08:31:17 +09:00
git-web--browse.sh
git.c Merge branch 'nd/parseopt-completion-more' 2018-04-10 16:28:22 +09:00
git.rc
gpg-interface.c
gpg-interface.h
graph.c
graph.h
grep.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
grep.h
hash.h
hashmap.c
hashmap.h Merge branch 'rb/hashmap-h-compilation-fix' into maint 2018-03-22 14:24:15 -07:00
help.c
help.h
hex.c
http-backend.c packfile: keep prepare_packed_git() private 2018-03-26 10:07:43 -07:00
http-fetch.c
http-push.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
http-walker.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
http.c Merge branch 'lv/tls-1.3' 2018-04-11 13:09:57 +09:00
http.h
ident.c
imap-send.c imap-send: rename 'new' variables 2018-02-22 10:08:05 -08:00
INSTALL RelNotes: add details on Perl module changes 2018-03-16 16:07:37 -07:00
iterator.h
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
LGPL-2.1
line-log.c tree-walk: convert tree entry functions to object_id 2018-03-14 09:23:50 -07:00
line-log.h
line-range.c
line-range.h
list-objects-filter-options.c
list-objects-filter-options.h
list-objects-filter.c sha1_file: convert sha1_object_info* to object_id 2018-03-14 09:23:49 -07:00
list-objects-filter.h
list-objects.c Merge branch 'jh/fsck-promisors' 2018-02-13 13:39:03 -08:00
list-objects.h
list.h
ll-merge.c
ll-merge.h
lockfile.c
lockfile.h
log-tree.c Convert find_unique_abbrev* to struct object_id 2018-03-14 09:23:48 -07:00
log-tree.h
mailinfo.c Merge branch 'jc/mailinfo-cleanup-fix' into maint 2018-03-22 14:24:16 -07:00
mailinfo.h
mailmap.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
mailmap.h
Makefile generate-cmds.sh: export all commands to command-list.h 2018-05-10 19:52:47 +09:00
match-trees.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
merge-blobs.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
merge-blobs.h
merge-recursive.c Revert "Merge branch 'en/rename-directory-detection'" 2018-04-11 18:07:11 +09:00
merge-recursive.h Revert "Merge branch 'en/rename-directory-detection'" 2018-04-11 18:07:11 +09:00
merge.c merge: always roll back lock in checkout_fast_forward() 2018-02-28 11:15:51 -08:00
mergesort.c
mergesort.h
name-hash.c Merge branch 'bp/name-hash-dirname-fix' 2018-02-27 10:33:53 -08:00
notes-cache.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
notes-cache.h
notes-merge.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
notes-merge.h
notes-utils.c
notes-utils.h
notes.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
notes.h
object-store.h sha1_file: allow map_sha1_file to handle arbitrary repositories 2018-03-26 10:05:55 -07:00
object.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
object.h Merge branch 'nd/object-allocation-comments' 2018-03-14 12:01:06 -07:00
oidmap.c
oidmap.h
oidset.c
oidset.h
pack-bitmap-write.c sha1_file: convert sha1_object_info* to object_id 2018-03-14 09:23:49 -07:00
pack-bitmap.c packfile: keep prepare_packed_git() private 2018-03-26 10:07:43 -07:00
pack-bitmap.h
pack-check.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
pack-objects.c
pack-objects.h
pack-revindex.c object-store: move packed_git and packed_git_mru to object store 2018-03-26 10:05:46 -07:00
pack-revindex.h
pack-write.c
pack.h
packfile.c Merge branch 'sb/packfiles-in-repository' 2018-04-11 13:09:55 +09:00
packfile.h Merge branch 'sb/packfiles-in-repository' 2018-04-11 13:09:55 +09:00
pager.c
parse-options-cb.c
parse-options.c Merge branch 'ps/contains-id-error-message' 2018-04-10 16:28:20 +09:00
parse-options.h Merge branch 'ps/contains-id-error-message' 2018-04-10 16:28:20 +09:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c repository: introduce raw object store field 2018-03-23 11:06:01 -07:00
path.h
pathspec.c
pathspec.h
pkt-line.c
pkt-line.h
preload-index.c
pretty.c strbuf: convert strbuf_add_unique_abbrev to use struct object_id 2018-03-14 09:23:48 -07:00
pretty.h
prio-queue.c
prio-queue.h
progress.c
progress.h
prompt.c
prompt.h
protocol.c
protocol.h
quote.c Merge branch 'jk/sq-dequote-on-bogus-input' 2018-02-27 10:34:02 -08:00
quote.h
reachable.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
reachable.h
read-cache.c Merge branch 'bc/object-id' 2018-04-10 08:25:45 +09:00
README.md
ref-filter.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
ref-filter.h
reflog-walk.c
reflog-walk.h
refs.c sha1_file: convert sha1_object_info* to object_id 2018-03-14 09:23:49 -07:00
refs.h
RelNotes The first batch for 2.18 cycle 2018-04-10 08:31:17 +09:00
remote-curl.c Merge branch 'jk/push-options-via-transport-fix' 2018-02-28 13:37:58 -08:00
remote-testsvn.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
remote.c sha1_file: convert sha1_object_info* to object_id 2018-03-14 09:23:49 -07:00
remote.h Merge branch 'jh/status-no-ahead-behind' 2018-03-08 12:36:24 -08:00
replace_object.c Convert lookup_replace_object to struct object_id 2018-03-14 09:23:50 -07:00
repository.c repository: introduce raw object store field 2018-03-23 11:06:01 -07:00
repository.h repository: introduce raw object store field 2018-03-23 11:06:01 -07:00
rerere.c Merge branch 'bc/object-id' 2018-04-10 08:25:45 +09:00
rerere.h completion: don't set PARSE_OPT_NOCOMPLETE on --rerere-autoupdate 2018-03-07 11:02:48 -08:00
resolve-undo.c resolve-undo: convert struct resolve_undo_info to object_id 2018-03-14 09:23:47 -07:00
resolve-undo.h resolve-undo: convert struct resolve_undo_info to object_id 2018-03-14 09:23:47 -07:00
revision.c Merge branch 'jk/cached-commit-buffer' into maint 2018-03-22 14:24:25 -07:00
revision.h Merge branch 'jk/cached-commit-buffer' 2018-03-06 14:54:05 -08:00
run-command.c run-command: use strbuf_addstr() for adding a string to a strbuf 2018-03-25 09:49:15 -07:00
run-command.h
send-pack.c send-pack: convert remaining functions to struct object_id 2018-03-14 09:23:48 -07:00
send-pack.h
sequencer.c Merge branch 'bc/object-id' 2018-04-10 08:25:45 +09:00
sequencer.h Merge branch 'pw/sequencer-in-process-commit' 2018-02-13 13:39:15 -08:00
server-info.c packfile: keep prepare_packed_git() private 2018-03-26 10:07:43 -07:00
setup.c Merge branch 'nd/remove-ignore-env-field' 2018-04-10 16:28:20 +09:00
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-lookup.c packfile: refactor hash search with fanout table 2018-02-15 13:08:55 -08:00
sha1-lookup.h packfile: refactor hash search with fanout table 2018-02-15 13:08:55 -08:00
sha1_file.c Merge branch 'sb/packfiles-in-repository' 2018-04-11 13:09:55 +09:00
sha1_name.c Merge branch 'sb/packfiles-in-repository' 2018-04-11 13:09:55 +09:00
sha1dc_git.c
sha1dc_git.h
shallow.c
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
split-index.c Merge branch 'bw/c-plus-plus' 2018-03-06 14:54:07 -08:00
split-index.h split-index: rename 'new' variables 2018-02-22 10:08:05 -08:00
strbuf.c Revert "Merge branch 'en/rename-directory-detection'" 2018-04-11 18:07:11 +09:00
strbuf.h Revert "Merge branch 'en/rename-directory-detection'" 2018-04-11 18:07:11 +09:00
streaming.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
streaming.h streaming: convert open_istream to use struct object_id 2018-03-14 09:23:49 -07:00
string-list.c
string-list.h
sub-process.c
sub-process.h
submodule-config.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
submodule-config.h
submodule.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
submodule.h submodule: rename 'new' variables 2018-02-22 10:08:05 -08:00
symlinks.c
tag.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
tag.h
tar.h
tempfile.c tempfile: rename 'template' variables 2018-02-22 10:08:05 -08:00
tempfile.h tempfile: rename 'template' variables 2018-02-22 10:08:05 -08:00
thread-utils.c
thread-utils.h
tmp-objdir.c object-store: migrate alternates struct and functions from cache.h 2018-03-23 11:06:01 -07:00
tmp-objdir.h
trace.c
trace.h
trailer.c trailer: rename 'template' variables 2018-02-22 10:08:05 -08:00
trailer.h
transport-helper.c Merge branch 'jh/partial-clone' 2018-02-13 13:39:04 -08:00
transport-internal.h
transport.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
transport.h Merge branch 'jh/partial-clone' 2018-02-13 13:39:04 -08:00
tree-diff.c
tree-walk.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
tree-walk.h tree-walk: convert tree entry functions to object_id 2018-03-14 09:23:50 -07:00
tree.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
tree.h tree: convert read_tree_recursive to struct object_id 2018-03-14 09:23:47 -07:00
unicode_width.h
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c Revert "Merge branch 'en/rename-directory-detection'" 2018-04-11 18:07:11 +09:00
unpack-trees.h Revert "Merge branch 'en/rename-directory-detection'" 2018-04-11 18:07:11 +09:00
upload-pack.c Merge branch 'jh/partial-clone' 2018-03-29 15:39:59 -07:00
url.c
url.h
urlmatch.c
urlmatch.h
usage.c
userdiff.c Merge branch 'tl/userdiff-csharp-async' 2018-03-15 15:00:47 -07:00
userdiff.h
utf8.c
utf8.h
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c object: rename function 'typename' to 'type_name' 2018-02-14 13:10:05 -08:00
walker.h
wildmatch.c
wildmatch.h
worktree.c worktree remove: allow it when $GIT_WORK_TREE is already gone 2018-02-12 13:13:35 -08:00
worktree.h worktree remove: allow it when $GIT_WORK_TREE is already gone 2018-02-12 13:13:35 -08:00
wrap-for-bin.sh
wrapper.c wrapper: rename 'template' variables 2018-02-22 10:08:05 -08:00
write_or_die.c
ws.c
wt-status.c Convert find_unique_abbrev* to struct object_id 2018-03-14 09:23:48 -07:00
wt-status.h wt-status: convert struct wt_status_state to object_id 2018-03-14 09:23:48 -07:00
xdiff-interface.c sha1_file: convert read_sha1_file to struct object_id 2018-03-14 09:23:50 -07:00
xdiff-interface.h
zlib.c

Git - fast, scalable, distributed revision control system

Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.

Git is an Open Source project covered by the GNU General Public License version 2 (some parts of it are under different licenses, compatible with the GPLv2). It was originally written by Linus Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

Many Git online resources are accessible from https://git-scm.com/ including full documentation and Git related tools.

See Documentation/gittutorial.txt to get started, then see Documentation/giteveryday.txt for a useful minimum set of commands, and Documentation/git-.txt for documentation of each command. If git has been correctly installed, then the tutorial can also be read with man gittutorial or git help tutorial, and the documentation of each command with man git-<commandname> or git help <commandname>.

CVS users may also want to read Documentation/gitcvs-migration.txt (man gitcvs-migration or git help cvs-migration if git is installed).

The user discussion and development of Git take place on the Git mailing list -- everyone is welcome to post bug reports, feature requests, comments and patches to git@vger.kernel.org (read Documentation/SubmittingPatches for instructions on patch submission). To subscribe to the list, send an email with just "subscribe git" in the body to majordomo@vger.kernel.org. The mailing list archives are available at https://public-inbox.org/git/, http://marc.info/?l=git and other archival sites.

The maintainer frequently sends the "What's cooking" reports that list the current status of various development topics to the mailing list. The discussion following them give a good reference for project status, development direction and remaining tasks.

The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your mood):

  • random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.
  • stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.
  • "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
  • "goddamn idiotic truckload of sh*t": when it breaks