Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Stefan Beller eee4502baa shallow: migrate shallow information into the object parser
We need to convert the shallow functions all at the same time
as we move the data structures they operate on into the repository.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-05-18 08:13:10 +09:00
.github Configure Git contribution guidelines for github.com 2017-06-13 08:41:47 -07:00
block-sha1
builtin path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +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 refs: store the main ref store inside the repository struct 2018-04-12 11:38:56 +09:00
sha1collisiondetection@19d97bf5af
sha1dc
t refs: add repository argument to get_main_ref_store 2018-04-12 11:38:56 +09:00
templates
vcs-svn
xdiff
.clang-format
.gitattributes
.gitignore
.gitmodules
.mailmap
.travis.yml
.tsan-suppressions
abspath.c
aclocal.m4 configure: use AC_LANG_PROGRAM consistently 2011-02-14 10:55:15 -08:00
advice.c
advice.h
alias.c
alloc.c alloc: allow arbitrary repositories for alloc functions 2018-05-16 11:16:50 +09:00
alloc.h alloc: allow arbitrary repositories for alloc functions 2018-05-16 11:16:50 +09:00
apply.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
apply.h
archive-tar.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
archive-zip.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
archive.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09: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 path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +09:00
blame.h
blob.c alloc: allow arbitrary repositories for alloc functions 2018-05-16 11:16:50 +09:00
blob.h
branch.c path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +09:00
branch.h Merge branch 'ks/branch-cleanup' 2017-12-27 11:16:25 -08:00
builtin.h
bulk-checkin.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
bundle.h
cache-tree.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
cache-tree.h cache-tree: convert write_*_as_tree to object_id 2018-03-14 09:23:47 -07:00
cache.h cache: convert get_graft_file to handle arbitrary repositories 2018-05-18 08:13:10 +09:00
check_bindir
check-builtins.sh
check-racy.c
checkout.c
checkout.h
color.c
color.h
column.c
column.h
combine-diff.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
command-list.txt
commit-slab.h
commit.c cache: convert get_graft_file to handle arbitrary repositories 2018-05-18 08:13:10 +09:00
commit.h shallow: migrate shallow information into the object parser 2018-05-18 08:13:10 +09:00
common-main.c repository: initialize the_repository in main() 2018-03-05 11:14:03 -08:00
config.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
config.h
config.mak.in
config.mak.uname
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
connected.h
convert.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09: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
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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
diffcore.h
dir-iterator.c
dir-iterator.h
dir.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
dir.h Merge branch 'nd/fix-untracked-cache-invalidation' 2018-02-27 10:33:50 -08:00
editor.c
entry.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
environment.c cache: convert get_graft_file to handle arbitrary repositories 2018-05-18 08:13:10 +09:00
exec_cmd.c
exec_cmd.h
fast-import.c packfile: add repository argument to unpack_entry 2018-04-26 10:54:27 +09:00
fetch-object.c unpack-trees: batch fetching of missing blobs 2017-12-08 09:58:51 -08:00
fetch-object.h
fetch-pack.c path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +09:00
fetch-pack.h
fmt-merge-msg.h
fsck.c commit: add repository argument to lookup_commit_graft 2018-05-18 08:13:10 +09:00
fsck.h
fsmonitor.c
fsmonitor.h dir.c: ignore paths containing .git when invalidating untracked cache 2018-02-07 12:27:02 -08:00
generate-cmdlist.sh
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 shallow: add repository argument to set_alternate_shallow_file 2018-05-18 08:13:10 +09:00
git.rc
gpg-interface.c
gpg-interface.h
graph.c
graph.h
grep.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09: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 Replace Free Software Foundation address in license notices 2017-11-09 13:21:21 +09:00
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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
list-objects-filter.h
list-objects.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
list-objects.h
list.h
ll-merge.c
ll-merge.h
lockfile.c
lockfile.h
log-tree.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09: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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
mailmap.h
Makefile Merge branch 'nd/combined-test-helper' 2018-04-11 13:09:56 +09:00
match-trees.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
merge-blobs.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
merge-blobs.h
merge-recursive.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
notes-cache.h
notes-merge.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
notes-merge.h
notes-utils.c
notes-utils.h
notes.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
notes.h
object-store.h object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
object.c shallow: migrate shallow information into the object parser 2018-05-18 08:13:10 +09:00
object.h shallow: migrate shallow information into the object parser 2018-05-18 08:13:10 +09:00
oidmap.c
oidmap.h
oidset.c
oidset.h
pack-bitmap-write.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
pack-bitmap.c packfile: keep prepare_packed_git() private 2018-03-26 10:07:43 -07:00
pack-bitmap.h
pack-check.c packfile: add repository argument to unpack_entry 2018-04-26 10:54:27 +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 cache.h: allow oid_object_info to handle arbitrary repositories 2018-04-26 10:54:28 +09:00
packfile.h object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +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 path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +09:00
path.h path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +09:00
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 cache.h: add repository argument to oid_object_info 2018-04-26 10:54:27 +09:00
reachable.h
read-cache.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
README.md
ref-filter.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
ref-filter.h ref-filter: consult want_color() before emitting colors 2017-07-13 12:42:51 -07:00
reflog-walk.c
reflog-walk.h
refs.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
refs.h refs: allow for_each_replace_ref to handle arbitrary repositories 2018-04-12 11:38:56 +09:00
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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
remote.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
remote.h Merge branch 'jh/status-no-ahead-behind' 2018-03-08 12:36:24 -08:00
replace_object.c replace-object: allow do_lookup_replace_object to handle arbitrary repositories 2018-04-12 11:38:57 +09:00
replace-object.h replace-object: allow lookup_replace_object to handle arbitrary repositories 2018-04-12 11:38:57 +09:00
repository.c repository: introduce parsed objects field 2018-05-09 12:12:36 +09:00
repository.h path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +09:00
rerere.c path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09: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 shallow: add repository argument to is_repository_shallow 2018-05-18 08:13:10 +09:00
send-pack.h
sequencer.c path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +09:00
sequencer.h
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_file.c cache.h: allow oid_object_info to handle arbitrary repositories 2018-04-26 10:54:28 +09:00
sha1_name.c cache.h: add repository argument to oid_object_info 2018-04-26 10:54:27 +09:00
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1dc_git.c
sha1dc_git.h
shallow.c shallow: migrate shallow information into the object parser 2018-05-18 08:13:10 +09:00
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h sigchain: add command to pop all common signals 2015-12-16 12:06:08 -08:00
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 cache.h: add repository argument to oid_object_info_extended 2018-04-26 10:54:27 +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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
submodule-config.h
submodule.c cache.h: add repository argument to oid_object_info 2018-04-26 10:54:27 +09:00
submodule.h submodule: rename 'new' variables 2018-02-22 10:08:05 -08:00
symlinks.c
tag.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
tag.h alloc: allow arbitrary repositories for alloc functions 2018-05-16 11:16:50 +09:00
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
transport-internal.h
transport.c Merge branch 'sb/object-store' 2018-04-11 13:09:55 +09:00
transport.h
tree-diff.c
tree-walk.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
tree-walk.h tree-walk: convert tree entry functions to object_id 2018-03-14 09:23:50 -07:00
tree.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09: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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
unpack-trees.h Revert "Merge branch 'en/rename-directory-detection'" 2018-04-11 18:07:11 +09:00
upload-pack.c shallow: add repository argument to is_repository_shallow 2018-05-18 08:13:10 +09:00
url.c
url.h
urlmatch.c urlmatch: use hex2chr() in append_normalized_escapes() 2017-07-09 09:43:01 -07:00
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-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
walker.h
wildmatch.c
wildmatch.h
worktree.c
worktree.h
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 path.c: migrate global git_path_* to take a repository argument 2018-05-18 08:13:10 +09: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 object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09: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