Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Andrzej Hunt e901de6816 reset: free instead of leaking unneeded ref
dwim_ref() allocs a new string into ref. Instead of setting to NULL to
discard it, we can FREE_AND_NULL.

This leak appears to have been introduced in:
4cf76f6bbf (builtin/reset: compute checkout metadata for reset, 2020-03-16)

This leak was found when running t0001 with LSAN, see also LSAN output below:

Direct leak of 5 byte(s) in 1 object(s) allocated from:
    #0 0x486514 in strdup /home/abuild/rpmbuild/BUILD/llvm-11.0.0.src/build/../projects/compiler-rt/lib/asan/asan_interceptors.cpp:452:3
    #1 0x9a7108 in xstrdup /home/ahunt/oss-fuzz/git/wrapper.c:29:14
    #2 0x8add6b in expand_ref /home/ahunt/oss-fuzz/git/refs.c:670:12
    #3 0x8ad777 in repo_dwim_ref /home/ahunt/oss-fuzz/git/refs.c:644:22
    #4 0x6394af in dwim_ref /home/ahunt/oss-fuzz/git/./refs.h:162:9
    #5 0x637e5c in cmd_reset /home/ahunt/oss-fuzz/git/builtin/reset.c:426:4
    #6 0x4cd60d in run_builtin /home/ahunt/oss-fuzz/git/git.c:453:11
    #7 0x4cb2da in handle_builtin /home/ahunt/oss-fuzz/git/git.c:704:3
    #8 0x4ccc37 in run_argv /home/ahunt/oss-fuzz/git/git.c:771:4
    #9 0x4cac29 in cmd_main /home/ahunt/oss-fuzz/git/git.c:902:19
    #10 0x69c5ce in main /home/ahunt/oss-fuzz/git/common-main.c:52:11
    #11 0x7f57ebb9d349 in __libc_start_main (/lib64/libc.so.6+0x24349)

Signed-off-by: Andrzej Hunt <ajrhunt@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-03-14 15:57:59 -07:00
.github Merge branch 'tb/ci-run-cocci-with-18.04' into maint 2021-02-11 13:57:36 -08:00
block-sha1 block-sha1: take a size_t length parameter 2020-11-16 13:41:35 -08:00
builtin reset: free instead of leaking unneeded ref 2021-03-14 15:57:59 -07:00
ci Merge branch 'tb/pack-revindex-on-disk' 2021-02-12 14:21:04 -08:00
compat Merge branch 'jk/open-returns-eintr' 2021-03-04 15:34:45 -08:00
contrib Merge branch 'jk/complete-branch-force-delete' 2021-02-12 14:21:04 -08:00
Documentation Merged the open-eintr workaround for macOS 2021-03-04 15:42:50 -08:00
ewah bitmap: implement bitmap_is_subset() 2020-12-08 14:48:16 -08:00
git-gui Merge https://github.com/prati0100/git-gui 2021-03-04 12:38:50 -08:00
gitk-git Merge remote-tracking branch 'paulus/master' into pm/gitk-update 2020-10-03 10:06:27 -07:00
gitweb gitweb/Makefile: conditionally include ../GIT-VERSION-FILE 2020-12-08 16:56:56 -08:00
mergetools mergetools/vimdiff: add vimdiff1 merge tool variant 2021-02-23 11:37:13 -08:00
negotiator
perl Merge branch 'jk/perl-warning' 2020-11-09 14:06:25 -08:00
po git-gui: fix typo in russian locale 2021-02-02 23:50:31 +05:30
ppc
refs refs/files-backend: don't peek into struct lock_file 2021-01-06 13:53:32 -08:00
sha1collisiondetection@855827c583
sha1dc
sha256
t Merge branch 'hv/trailer-formatting' 2021-03-01 14:02:58 -08:00
templates hook: add sample template for push-to-checkout 2020-10-16 08:47:02 -07:00
trace2
vcs-svn
xdiff diff: add -I<regex> that ignores matching changes 2020-10-20 12:53:26 -07:00
.cirrus.yml
.clang-format
.editorconfig
.gitattributes CoC: explicitly take any whitespace breakage 2021-01-04 09:44:49 -08:00
.gitignore Merge branch 'fc/random-cleanup' 2020-12-08 15:11:21 -08:00
.gitmodules
.mailmap
.travis.yml ci: remove GETTEXT_POISON jobs 2021-01-21 15:50:00 -08:00
.tsan-suppressions
abspath.c abspath: add a function to resolve paths with missing components 2020-12-12 23:35:47 -08:00
aclocal.m4
add-interactive.c Merge branch 'js/add-i-color-fix' 2020-12-08 15:11:17 -08:00
add-interactive.h
add-patch.c Merge branch 'js/add-i-color-fix' 2020-12-08 15:11:17 -08:00
advice.c push: parse and set flag for "--force-if-includes" 2020-10-03 09:59:19 -07:00
advice.h push: parse and set flag for "--force-if-includes" 2020-10-03 09:59:19 -07:00
alias.c
alias.h
alloc.c
alloc.h
apply.c Merge branch 'ab/unreachable-break' 2020-12-18 15:15:18 -08:00
apply.h
archive-tar.c archive: support compression levels beyond 9 2020-11-09 11:25:45 -08:00
archive-zip.c archive: read short blobs in archive.c::write_archive_entry() 2020-09-19 15:56:05 -07:00
archive.c Merge branch 'rs/archive-plug-leak-refname' 2020-11-25 15:24:53 -08:00
archive.h Merge branch 'rs/archive-plug-leak-refname' 2020-11-25 15:24:53 -08:00
attr.c Use new HASHMAP_INIT macro to simplify hashmap initialization 2020-11-11 12:55:27 -08:00
attr.h
banned.h banned.h: mark ctime_r() and asctime_r() as banned 2020-12-02 14:30:39 -08:00
base85.c
bisect.c Merge branch 'js/params-vs-args' 2021-02-25 16:43:32 -08:00
bisect.h
blame.c Merge branch 'en/strmap' 2020-11-21 15:14:38 -08:00
blame.h blame: simplify 'setup_blame_bloom_data' interface 2020-11-01 15:54:15 -08:00
blob.c
blob.h
bloom.c Use new HASHMAP_INIT macro to simplify hashmap initialization 2020-11-11 12:55:27 -08:00
bloom.h bloom: encode out-of-bounds filters as non-empty 2020-09-17 21:55:50 -07:00
branch.c wt-status: tolerate dangling marks 2020-09-02 14:39:25 -07:00
branch.h
builtin.h Merge branch 'ds/maintenance-part-3' 2020-11-18 13:32:53 -08:00
bulk-checkin.c
bulk-checkin.h
bundle.c bundle: arguments can be read from stdin 2021-01-11 21:50:41 -08:00
bundle.h
cache-tree.c cache-tree: extract subtree_pos() 2021-01-23 17:14:07 -08:00
cache-tree.h cache-tree: extract subtree_pos() 2021-01-23 17:14:07 -08:00
cache.h Merge branch 'ds/more-index-cleanups' 2021-02-10 14:48:33 -08:00
chdir-notify.c
chdir-notify.h
check_bindir check_bindir: avoid "test <cond> -a/-o <cond>" 2014-06-09 14:47:06 -07:00
check-builtins.sh
checkout.c config: drop git_config_get_string_const() 2020-08-17 15:35:47 -07:00
checkout.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
chunk-format.c chunk-format: restore duplicate chunk checks 2021-02-18 13:38:16 -08:00
chunk-format.h chunk-format: create read chunk API 2021-02-18 13:38:16 -08:00
CODE_OF_CONDUCT.md CoC: update to version 2.0 + local changes 2021-01-13 17:45:04 -08:00
color.c
color.h
column.c
column.h
combine-diff.c Merge branch 'jk/diff-cc-oidfind-fix' 2020-10-05 14:01:55 -07:00
command-list.txt mailmap doc: create a new "gitmailmap(5)" man page 2021-01-12 14:04:39 -08:00
commit-graph.c Merge branch 'ds/chunked-file-api' 2021-03-01 14:02:57 -08:00
commit-graph.h commit-reach: use corrected commit dates in paint_down_to_common() 2021-01-18 16:21:18 -08:00
commit-reach.c commit-reach: stale commits may prune generation further 2021-02-22 13:34:34 -08:00
commit-reach.h commit-graph: return 64-bit generation number 2021-01-18 16:21:18 -08:00
commit-slab-decl.h
commit-slab-impl.h
commit-slab.h commit-slab: add a function to deep free entries on the slab 2020-06-08 12:28:49 -07:00
commit.c Merge branch 'bc/signed-objects-with-both-hashes' 2021-02-22 16:12:42 -08:00
commit.h Merge branch 'bc/signed-objects-with-both-hashes' 2021-02-22 16:12:42 -08:00
common-main.c common-main: delay trace2 initialization 2019-08-06 13:09:01 -07:00
config.c Merge branch 'ak/config-bad-bool-error' 2021-02-17 17:21:43 -08:00
config.h Merge branch 'ps/config-env-pairs' 2021-01-25 14:19:19 -08:00
config.mak.dev Merge branch 'jc/sparse-error-for-developer-build' 2020-11-18 13:32:54 -08:00
config.mak.in Merge branch 'jc/remove-export-from-config-mak-in' 2013-04-01 09:00:02 -07:00
config.mak.uname Merge branch 'jk/open-returns-eintr' 2021-03-04 15:34:45 -08:00
configure.ac Remove support for v1 of the PCRE library 2021-01-23 21:15:43 -08:00
connect.c Merge branch 'jt/clone-unborn-head' 2021-02-17 17:21:40 -08:00
connect.h
connected.c
connected.h
convert.c convert: drop unused crlf_action from check_global_conv_flags_eol() 2020-09-30 12:53:47 -07:00
convert.h
copy.c
COPYING
credential.c credential: treat CR/LF as line endings in the credential protocol 2020-10-03 10:41:03 -07:00
credential.h credential: correct order of parameters for credential_match 2020-05-04 22:56:33 -07:00
csum-file.c
csum-file.h csum-file: add hashwrite_be64() 2020-11-12 09:40:06 -08:00
ctype.c
daemon.c
date.c
decorate.c
decorate.h
delta-islands.c
delta-islands.h
delta.h
detect-compiler
diff-delta.c
diff-lib.c Merge branch 'rs/plug-diff-cache-leak' 2020-11-25 15:24:53 -08:00
diff-merges.c diff-merges: add '--diff-merges=1' as synonym for 'first-parent' 2020-12-21 13:47:32 -08:00
diff-merges.h diff-merges: get rid of now empty diff_merges_init_revs() 2020-12-21 13:47:31 -08:00
diff-no-index.c
diff.c Merge branch 'jc/diffcore-rotate' 2021-02-25 16:43:30 -08:00
diff.h Merge branch 'jc/diffcore-rotate' 2021-02-25 16:43:30 -08:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c diffcore-rename: guide inexact rename detection based on basenames 2021-02-15 18:02:16 -08:00
diffcore-rotate.c diff: --{rotate,skip}-to=<path> 2021-02-16 09:30:42 -08:00
diffcore.h diff: --{rotate,skip}-to=<path> 2021-02-16 09:30:42 -08:00
dir-iterator.c
dir-iterator.h
dir.c Merge branch 'jh/untracked-cache-fix' 2021-03-01 14:02:58 -08:00
dir.h sparse-checkout: load sparse-checkout patterns 2021-01-23 17:14:07 -08:00
editor.c
entry.c write_entry(): fix misuses of path in error messages 2021-02-16 11:27:17 -08:00
environment.c config: allow specifying config entries via envvar pairs 2021-01-15 13:03:45 -08:00
environment.h environment: make getenv_safe() a public function 2021-01-15 13:03:45 -08:00
exec-cmd.c
exec-cmd.h
fetch-negotiator.c
fetch-negotiator.h
fetch-pack.c Merge branch 'jt/transfer-fsck-across-packs' 2021-03-01 14:02:57 -08:00
fetch-pack.h Merge branch 'jt/lazy-fetch' 2020-09-03 12:37:04 -07:00
fmt-merge-msg.c Merge branch 'bc/signed-objects-with-both-hashes' 2021-02-22 16:12:42 -08:00
fmt-merge-msg.h
fsck.c Merge branch 'jt/transfer-fsck-across-packs' 2021-03-01 14:02:57 -08:00
fsck.h Merge branch 'jt/transfer-fsck-across-packs' 2021-03-01 14:02:57 -08:00
fsmonitor.c Merge branch 'jh/fsmonitor-prework' 2021-03-01 14:02:56 -08:00
fsmonitor.h fsmonitor: log invocation of FSMonitor hook to trace2 2021-02-16 17:14:34 -08:00
fuzz-commit-graph.c commit-graph: pass a 'struct repository *' in more places 2020-09-09 12:51:48 -07:00
fuzz-pack-headers.c
fuzz-pack-idx.c
generate-cmdlist.sh Fit to Plan 9's ANSI/POSIX compatibility layer 2020-09-09 22:31:31 -07:00
generate-configlist.sh
gettext.c Merge branch 'ab/detox-gettext-tests' 2021-02-10 14:48:33 -08:00
gettext.h tests: remove support for GIT_TEST_GETTEXT_POISON 2021-01-21 15:50:01 -08:00
git-add--interactive.perl Merge branch 'js/add-i-color-fix' 2020-12-08 15:11:17 -08:00
git-archimport.perl
git-bisect.sh bisect--helper: reimplement bisect_skip shell function in C 2021-02-03 14:52:09 -08:00
git-compat-util.h Merge branch 'jk/open-returns-eintr' 2021-03-04 15:34:45 -08:00
git-cvsexportcommit.perl cvsexportcommit: do not run git programs in dashed form 2020-08-26 14:49:52 -07:00
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh mergetool: break setup_tool out into separate initialization function 2021-02-09 14:09:16 -08:00
git-filter-branch.sh
git-instaweb.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh Merge branch 'sh/mergetool-hideresolved' 2021-02-17 17:21:41 -08:00
git-mergetool.sh mergetool: add per-tool support and overrides for the hideResolved flag 2021-02-09 14:09:16 -08:00
git-p4.py Merge branch 'dl/p4-encode-after-kw-expansion' into maint 2021-02-08 14:05:54 -08:00
git-quiltimport.sh
git-rebase--preserve-merges.sh
git-request-pull.sh
git-send-email.perl
git-sh-i18n.sh tests: remove support for GIT_TEST_GETTEXT_POISON 2021-01-21 15:50:01 -08:00
git-sh-setup.sh
git-submodule.sh submodule: fix fetch_in_submodule logic 2020-11-24 13:14:09 -08:00
git-svn.perl perl: check for perl warnings while running tests 2020-10-21 23:11:48 -07:00
GIT-VERSION-GEN Git 2.31-rc1 2021-03-02 22:41:13 -08:00
git-web--browse.sh
git.c Merge branch 'tb/precompose-prefix-too' 2021-02-12 14:21:04 -08:00
git.rc
gpg-interface.c gpg-interface: remove other signature headers before verifying 2021-02-10 23:35:42 -08:00
gpg-interface.h gpg-interface: improve interface for parsing tags 2021-02-10 23:35:42 -08:00
graph.c
graph.h
grep.c Merge branch 'ab/grep-pcre-invalid-utf8' 2021-02-10 14:48:33 -08:00
grep.h Merge branch 'ab/grep-pcre-invalid-utf8' 2021-02-10 14:48:33 -08:00
hash-lookup.c oid_pos(): access table through const pointers 2021-01-28 12:03:26 -08:00
hash-lookup.h oid_pos(): access table through const pointers 2021-01-28 12:03:26 -08:00
hash.h cache.h: move hash/oid functions to hash.h 2020-12-04 13:55:14 -08:00
hashmap.c hashmap: provide deallocation function names 2020-11-02 12:15:50 -08:00
hashmap.h hashmap: provide deallocation function names 2020-11-02 12:15:50 -08:00
help.c help.c: help.autocorrect=never means "do not compute suggestions" 2020-11-25 13:02:15 -08:00
help.h help: do not expect built-in commands to be hardlinked 2020-10-07 15:25:10 -07:00
hex.c
http-backend.c
http-fetch.c http-fetch: allow custom index-pack args 2021-02-22 12:07:40 -08:00
http-push.c
http-walker.c http: refactor finish_http_pack_request() 2020-06-10 18:06:34 -07:00
http.c http: allow custom index-pack args 2021-02-22 12:07:40 -08:00
http.h http: allow custom index-pack args 2021-02-22 12:07:40 -08:00
ident.c Merge branch 'pw/rebase-i-more-options' 2020-09-03 12:37:01 -07:00
imap-send.c imap-send: parse default git config 2020-12-01 11:10:59 -08:00
INSTALL doc: mention Python 3.x supports 2020-12-14 15:01:03 -08:00
iterator.h
json-writer.c
json-writer.h
khash.h
kwset.c
kwset.h
levenshtein.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
levenshtein.h Typofixes outside documentation area 2010-02-03 21:28:17 -08:00
LGPL-2.1
line-log.c line-log: handle deref_tag() returning NULL 2020-10-12 12:25:14 -07:00
line-log.h
line-range.c line-range.c: remove implicit dependency on the_index 2018-09-21 09:51:18 -07:00
line-range.h line-range.c: remove implicit dependency on the_index 2018-09-21 09:51:18 -07:00
linear-assignment.c
linear-assignment.h
list-objects-filter-options.c list-objects-filter-options: fix function name in BUG 2020-11-16 14:28:25 -08:00
list-objects-filter-options.h
list-objects-filter.c object-name.c: rename from sha1-name.c 2021-01-04 13:01:55 -08:00
list-objects-filter.h
list-objects.c
list-objects.h
list.h tempfile: use list.h for linked list 2017-09-06 17:19:54 +09:00
ll-merge.c
ll-merge.h
lockfile.c
lockfile.h
log-tree.c Merge branch 'ab/diff-deferred-free' 2021-02-22 16:12:43 -08:00
log-tree.h format-patch: make output filename configurable 2020-11-09 17:44:41 -08:00
ls-refs.c Merge branch 'jt/clone-unborn-head' 2021-02-17 17:21:40 -08:00
ls-refs.h ls-refs: report unborn targets of symrefs 2021-02-05 13:49:53 -08:00
mailinfo.c
mailinfo.h
mailmap.c mailmap: only look for .mailmap in work tree 2021-02-10 13:34:51 -08:00
mailmap.h shortlog: remove unused(?) "repo-abbrev" feature 2021-01-12 14:04:42 -08:00
Makefile Merge branch 'jk/open-returns-eintr' 2021-03-04 15:34:45 -08:00
match-trees.c
mem-pool.c
mem-pool.h
merge-blobs.c
merge-blobs.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
merge-ort-wrappers.c merge-ort-wrappers: new convience wrappers to mimic the old merge API 2020-10-26 22:36:14 -07:00
merge-ort-wrappers.h merge-ort-wrappers: new convience wrappers to mimic the old merge API 2020-10-26 22:36:14 -07:00
merge-ort.c merge-ort: call diffcore_rename() directly 2021-02-15 18:02:16 -08:00
merge-ort.h merge-ort: implement merge_incore_recursive() 2020-12-16 21:56:39 -08:00
merge-recursive.c commit: move reverse_commit_list() from merge-recursive 2020-12-16 21:56:39 -08:00
merge-recursive.h
merge.c
mergesort.c
mergesort.h
midx.c Merge branch 'ds/chunked-file-api' 2021-03-01 14:02:57 -08:00
midx.h
name-hash.c name-hash: use trace2 regions for init 2021-01-23 17:14:07 -08:00
notes-cache.c notes-cache.c: remove the_repository references 2018-11-12 14:50:06 +09:00
notes-cache.h notes-cache.c: remove the_repository references 2018-11-12 14:50:06 +09:00
notes-merge.c notes-merge: switch to use the_hash_algo 2019-04-01 11:57:37 +09:00
notes-merge.h
notes-utils.c strbuf: add and use strbuf_insertstr() 2020-02-10 09:04:45 -08:00
notes-utils.h notes-utils.c: remove the_repository references 2019-01-14 12:13:04 -08:00
notes.c Merge branch 'na/notes-displayref-is-not-boolean' 2020-11-30 14:49:44 -08:00
notes.h
object-file.c hash-lookup: rename from sha1-lookup 2021-01-04 13:01:55 -08:00
object-name.c object-name.c: rename from sha1-name.c 2021-01-04 13:01:55 -08:00
object-store.h packfile: prepare for the existence of '*.rev' files 2021-01-25 18:32:43 -08:00
object.c bundle: lost objects when removing duplicate pendings 2021-01-11 21:50:41 -08:00
object.h object: allow clear_commit_marks_all to handle any repo 2020-10-31 10:46:34 -07:00
oid-array.c oid_pos(): access table through const pointers 2021-01-28 12:03:26 -08:00
oid-array.h oid-array: provide a for-loop iterator 2020-12-07 12:32:04 -08:00
oidmap.c hashmap: provide deallocation function names 2020-11-02 12:15:50 -08:00
oidmap.h
oidset.c blame: silently ignore invalid ignore file objects 2020-11-10 13:05:06 -08:00
oidset.h blame: validate and peel the object names on the ignore list 2020-09-24 22:20:58 -07:00
pack-bitmap-write.c oid_pos(): access table through const pointers 2021-01-28 12:03:26 -08:00
pack-bitmap.c rev-list: add --disk-usage option for calculating disk usage 2021-02-11 09:57:55 -08:00
pack-bitmap.h rev-list: add --disk-usage option for calculating disk usage 2021-02-11 09:57:55 -08:00
pack-check.c fsck: correctly compute checksums on idx files larger than 4GB 2020-11-16 13:41:35 -08:00
pack-objects.c
pack-objects.h
pack-revindex.c pack-revindex: ensure that on-disk reverse indexes are given precedence 2021-01-25 18:32:44 -08:00
pack-revindex.h pack-revindex: ensure that on-disk reverse indexes are given precedence 2021-01-25 18:32:44 -08:00
pack-write.c Merge branch 'jt/transfer-fsck-across-packs' 2021-03-01 14:02:57 -08:00
pack.h Merge branch 'jt/transfer-fsck-across-packs' 2021-03-01 14:02:57 -08:00
packfile.c packfile: prepare for the existence of '*.rev' files 2021-01-25 18:32:43 -08:00
packfile.h packfile: prepare for the existence of '*.rev' files 2021-01-25 18:32:43 -08:00
pager.c pager: refactor wait_for_pager() function 2021-02-01 21:15:58 -08:00
parse-options-cb.c assert PARSE_OPT_NONEG in parse-options callbacks 2020-09-30 12:53:47 -07:00
parse-options.c MacOS: precompose_argv_prefix() 2021-02-03 14:09:37 -08:00
parse-options.h parse-options: format argh like error messages 2021-01-06 15:10:27 -08:00
patch-delta.c patch-delta: handle truncated copy parameters 2018-08-30 10:30:23 -07:00
patch-ids.c Merge branch 'jk/log-cherry-pick-duplicate-patches' into maint 2021-02-05 16:31:28 -08:00
patch-ids.h patch-ids: handle duplicate hashmap entries 2021-01-12 11:13:32 -08:00
path.c
path.h
pathspec.c
pathspec.h
pkt-line.c sideband: diagnose more sideband anomalies 2020-10-29 09:23:29 -07:00
pkt-line.h
preload-index.c preload-index: log the number of lstat calls to trace2 2021-02-16 17:14:34 -08:00
pretty.c Merge branch 'hv/trailer-formatting' 2021-03-01 14:02:58 -08:00
pretty.h pretty.c: capture invalid trailer argument 2021-02-15 16:48:38 -08:00
prio-queue.c
prio-queue.h
progress.c
progress.h
promisor-remote.c promisor-remote: remove unused variable 2020-09-21 22:32:49 -07:00
promisor-remote.h promisor-remote: remove unused variable 2020-09-21 22:32:49 -07:00
prompt.c
prompt.h
protocol.c protocol: re-enable v2 protocol by default 2020-09-25 11:40:42 -07:00
protocol.h
prune-packed.c
prune-packed.h
quote.c quote: make sq_dequote_step() a public function 2021-01-12 12:03:18 -08:00
quote.h quote: make sq_dequote_step() a public function 2021-01-12 12:03:18 -08:00
range-diff.c Merge branch 'js/range-diff-one-side-only' 2021-02-17 17:21:41 -08:00
range-diff.h Merge branch 'js/range-diff-one-side-only' 2021-02-17 17:21:41 -08:00
reachable.c
reachable.h
read-cache.c Merge branch 'ns/raise-write-index-buffer-size' 2021-03-01 14:02:58 -08:00
README.md
rebase-interactive.c
rebase-interactive.h
rebase.c
rebase.h
ref-filter.c Merge branch 'hv/trailer-formatting' 2021-03-01 14:02:58 -08:00
ref-filter.h branch: sort detached HEAD based on a flag 2021-01-07 15:13:21 -08:00
reflog-walk.c Merge branch 'nd/i18n' 2018-08-15 15:08:23 -07:00
reflog-walk.h
refs.c Merge branch 'tb/ls-refs-optim' 2021-02-05 16:40:45 -08:00
refs.h Merge branch 'tb/ls-refs-optim' 2021-02-05 16:40:45 -08:00
refspec.c Merge branch 'fc/atmark-in-refspec' 2020-12-14 10:21:36 -08:00
refspec.h Merge branch 'sb/clone-origin' 2020-10-27 15:09:50 -07:00
RelNotes Prepare for 2.30.1 2021-02-05 16:31:28 -08:00
remote-curl.c push: parse and set flag for "--force-if-includes" 2020-10-03 09:59:19 -07:00
remote.c Merge branch 'nk/refspecs-negative-fix' 2020-12-23 13:59:46 -08:00
remote.h Merge branch 'jt/clone-unborn-head' 2021-02-17 17:21:40 -08:00
replace-object.c
replace-object.h
repo-settings.c Merge branch 'ds/maintenance-part-2' 2020-10-27 15:09:47 -07:00
repository.c repository: add repo reference to index_state 2021-01-23 17:14:07 -08:00
repository.h Merge branch 'ds/maintenance-part-2' 2020-10-27 15:09:47 -07:00
rerere.c rerere: use strmap to store rerere directories 2021-01-28 11:26:20 -08:00
rerere.h
reset.c
reset.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'ak/corrected-commit-date' 2021-02-17 17:21:40 -08:00
revision.h Merge branch 'so/log-diff-merge' 2021-02-05 16:40:44 -08:00
run-command.c pager: properly log pager exit code when signalled 2021-02-01 21:15:58 -08:00
run-command.h run-command: document use_shell option 2021-01-22 14:21:32 -08:00
send-pack.c Merge branch 'js/trace2-session-id' 2020-12-08 15:11:20 -08:00
send-pack.h
sequencer.c Merge branch 'ds/more-index-cleanups' 2021-02-10 14:48:33 -08:00
sequencer.h Merge branch 'en/merge-ort-api-null-impl' 2020-11-18 13:32:53 -08:00
serve.c ls-refs: report unborn targets of symrefs 2021-02-05 13:49:53 -08:00
serve.h
server-info.c Fix spelling errors in code comments 2019-11-10 16:00:54 +09:00
setup.c
sh-i18n--envsubst.c
sha1dc_git.c hex: drop sha1_to_hex() 2019-11-13 10:09:10 +09:00
sha1dc_git.h
shallow.c commit_graft_pos(): take an oid instead of a bare hash 2021-01-28 11:21:07 -08:00
shallow.h
shell.c
shortlog.h shortlog: remove unused(?) "repo-abbrev" feature 2021-01-12 14:04:42 -08:00
sideband.c Merge branch 'jk/sideband-more-error-checking' 2020-11-09 14:06:29 -08:00
sideband.h sideband: diagnose more sideband anomalies 2020-10-29 09:23:29 -07:00
sigchain.c
sigchain.h
split-index.c
split-index.h
stable-qsort.c
strbuf.c
strbuf.h
streaming.c
streaming.h
string-list.c style: the opening '{' of a function is in a separate line 2018-12-10 15:41:09 +09:00
string-list.h Merge branch 'en/string-list-can-be-custom-sorted' 2020-01-22 15:07:31 -08:00
strmap.c strmap: take advantage of FLEXPTR_ALLOC_STR when relevant 2020-11-11 12:55:27 -08:00
strmap.h strmap: make callers of strmap_remove() to call it in void context 2020-12-15 15:30:44 -08:00
strvec.c
strvec.h
sub-process.c strvec: convert remaining callers away from argv_array name 2020-07-28 15:02:18 -07:00
sub-process.h hashmap_entry: remove first member requirement from docs 2019-10-07 10:20:12 +09:00
submodule-config.c hashmap: provide deallocation function names 2020-11-02 12:15:50 -08:00
submodule-config.h
submodule.c Merge branch 'sj/untracked-files-in-submodule-directory-is-not-dirty' 2021-01-25 14:19:18 -08:00
submodule.h
symlinks.c
tag.c gpg-interface: improve interface for parsing tags 2021-02-10 23:35:42 -08:00
tag.h
tar.h
tempfile.c
tempfile.h
thread-utils.c
thread-utils.h
tmp-objdir.c packfile: prepare for the existence of '*.rev' files 2021-01-25 18:32:43 -08:00
tmp-objdir.h tmp-objdir: introduce API for temporary object directories 2016-10-10 13:54:02 -07:00
trace2.c trace2: add a public function for getting the SID 2020-11-11 18:26:52 -08:00
trace2.h trace2: add a public function for getting the SID 2020-11-11 18:26:52 -08:00
trace.c
trace.h
trailer.c pretty format %(trailers): add a "key_value_separator" 2020-12-09 14:16:42 -08:00
trailer.h pretty format %(trailers): add a "key_value_separator" 2020-12-09 14:16:42 -08:00
transport-helper.c connect, transport: encapsulate arg in struct 2021-02-05 13:49:54 -08:00
transport-internal.h connect, transport: encapsulate arg in struct 2021-02-05 13:49:54 -08:00
transport.c connect, transport: encapsulate arg in struct 2021-02-05 13:49:54 -08:00
transport.h clone: respect remote unborn HEAD 2021-02-05 13:49:55 -08:00
tree-diff.c bloom/diff: properly short-circuit on max_changes 2020-09-17 09:31:25 -07:00
tree-walk.c tree-walk: report recursion counts 2021-01-04 15:23:08 -08:00
tree-walk.h
tree.c tree: enable cmp_cache_name_compare() to be used elsewhere 2020-12-13 14:18:20 -08:00
tree.h tree: enable cmp_cache_name_compare() to be used elsewhere 2020-12-13 14:18:20 -08:00
unicode-width.h
unimplemented.sh
unix-socket.c Merge branch 'rs/strbuf-getcwd' 2014-09-02 13:28:44 -07:00
unix-socket.h
unpack-trees.c sparse-checkout: load sparse-checkout patterns 2021-01-23 17:14:07 -08:00
unpack-trees.h
upload-pack.c Merge branch 'ak/corrected-commit-date' 2021-02-17 17:21:40 -08:00
upload-pack.h argv-array: rename to strvec 2020-07-28 15:02:17 -07:00
url.c Fix spelling errors in code comments 2019-11-10 16:00:54 +09:00
url.h list-objects-filter: implement composite filters 2019-06-28 08:41:53 -07:00
urlmatch.c
urlmatch.h credential: handle credential.<partial-URL>.<key> again 2020-04-24 15:53:46 -07:00
usage.c usage: trace2 BUG() invocations 2021-02-09 14:14:34 -08:00
userdiff.c Merge branch 've/userdiff-bash' 2020-11-02 13:17:46 -08:00
userdiff.h
utf8.c
utf8.h
varint.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
varint.h
version.c
version.h
versioncmp.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
walker.c
walker.h
wildmatch.c
wildmatch.h
worktree.c worktree: teach worktree_lock_reason() to gently handle main worktree 2021-01-30 09:57:20 -08:00
worktree.h worktree: teach worktree to lazy-load "prunable" reason 2021-01-30 09:57:16 -08:00
wrap-for-bin.sh
wrapper.c xrealloc: do not reuse pointer freed by zero-length realloc() 2020-09-02 12:18:14 -07:00
write-or-die.c
ws.c
wt-status.c Merge branch 'sj/untracked-files-in-submodule-directory-is-not-dirty' 2021-01-25 14:19:18 -08:00
wt-status.h branch: sort detached HEAD based on a flag 2021-01-07 15:13:21 -08:00
xdiff-interface.c
xdiff-interface.h
zlib.c

Build status

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-<commandname>.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://lore.kernel.org/git/, http://marc.info/?l=git and other archival sites.

Issues which are security relevant should be disclosed privately to the Git Security mailing list git-security@googlegroups.com.

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