Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Junio C Hamano 1bb914603a Documentation/tutorial-2: Fix interesting typo in an example.
Marco Candrian noticed that one cat-file example refers to a
blob object that is never used in the example sequence.

The bug is interesting in that the output from the botched
sample command is consistent with the incorrect blob object
name ;-).

Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-01-21 21:24:49 -08:00
arm
compat Replacing the system call pread() with lseek()/xread()/lseek() sequence. 2007-01-09 16:40:40 -08:00
contrib Replace "echo -n" with printf in shell scripts. 2007-01-15 22:23:21 -08:00
Documentation Documentation/tutorial-2: Fix interesting typo in an example. 2007-01-21 21:24:49 -08:00
gitweb gitweb: Fix git_patchset_body not closing <div class="patch"> 2007-01-09 16:23:39 -08:00
mozilla-sha1
perl Fix spurious compile error 2007-01-16 13:43:50 -08:00
ppc
t prune: --grace=time 2007-01-20 23:29:49 -08:00
templates update hook: redirect _both_ diagnostic lines to stderr upon tag failure 2006-12-28 14:12:48 -08:00
xdiff Fix yet another subtle xdl_merge() bug 2006-12-30 18:05:05 -08:00
.gitignore Ignore git-init and git-remote 2007-01-08 21:53:23 -08:00
.mailmap add .mailmap for git-shortlog output with the git repository 2006-12-25 21:41:11 -08:00
alloc.c
archive-tar.c Set default "tar" umask to 002 and owner.group to root.root 2007-01-06 10:37:14 -08:00
archive-zip.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
archive.h Remove unsupported C99 style struct initializers in git-archive. 2006-11-04 23:48:36 -08:00
base85.c
blob.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
blob.h
builtin-add.c Make a short-and-sweet "git-add -i" synonym for "git-add --interactive" 2007-01-17 10:52:36 -08:00
builtin-annotate.c git-annotate: no need to exec blame; it is built-in now. 2006-11-10 13:36:44 -08:00
builtin-apply.c apply --cached: fix crash in subdirectory 2007-01-20 19:05:20 -08:00
builtin-archive.c builtin-archive: do not free a tree held by the object layer. 2007-01-09 14:07:59 -08:00
builtin-blame.c Merge branch 'jc/blame' 2006-12-20 13:58:10 -08:00
builtin-branch.c branch -f: no reason to forbid updating the current branch in a bare repo. 2007-01-20 19:19:12 -08:00
builtin-cat-file.c
builtin-check-ref-format.c
builtin-checkout-index.c
builtin-commit-tree.c commit-tree: cope with different ways "utf-8" can be spelled. 2006-12-30 15:58:43 -08:00
builtin-count-objects.c count-objects -v: show number of packs as well. 2006-12-27 01:05:00 -08:00
builtin-describe.c Remove hash in git-describe in favor of util slot. 2007-01-14 21:17:27 -08:00
builtin-diff-files.c
builtin-diff-index.c
builtin-diff-stages.c
builtin-diff-tree.c
builtin-diff.c Revert "git-diff: Introduce --index and deprecate --cached." 2006-12-13 02:03:11 -08:00
builtin-fmt-merge-msg.c "git fmt-merge-msg" SIGSEGV 2006-11-16 23:45:57 -08:00
builtin-for-each-ref.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-grep.c short i/o: fix calls to read to use xread or read_in_full 2007-01-08 15:44:47 -08:00
builtin-init-db.c use 'init' instead of 'init-db' for shipped docs and tools 2007-01-12 13:36:16 -08:00
builtin-log.c --walk-reflogs: do not crash with cyclic reflog ancestry 2007-01-20 22:58:42 -08:00
builtin-ls-files.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-ls-tree.c
builtin-mailinfo.c -u is now default for 'git-mailinfo'. 2007-01-09 21:32:49 -08:00
builtin-mailsplit.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-merge-file.c move read_mmfile() into xdiff-interface 2006-12-21 23:10:14 -08:00
builtin-mv.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-name-rev.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-pack-objects.c Use fixed-size integers for .idx file I/O 2007-01-18 14:11:50 -08:00
builtin-pack-refs.c --prune is now default for 'pack-refs' 2007-01-08 14:46:00 -08:00
builtin-prune-packed.c prune-packed: add -q to usage 2007-01-18 14:30:05 -08:00
builtin-prune.c prune: --grace=time 2007-01-20 23:29:49 -08:00
builtin-push.c rename --exec to --receive-pack for push and send-pack 2007-01-19 17:54:33 -08:00
builtin-read-tree.c read-tree: document --exclude-per-directory 2006-12-05 23:44:23 -08:00
builtin-reflog.c git reflog expire: document --stale-fix option. 2007-01-15 14:43:03 -08:00
builtin-repo-config.c Merge branch 'jc/clone' 2006-12-20 13:56:14 -08:00
builtin-rerere.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
builtin-rev-list.c Teach all of log family --left-right output. 2006-12-17 10:35:28 -08:00
builtin-rev-parse.c
builtin-rm.c git-rm documentation: remove broken behaviour from the example. 2007-01-16 11:50:29 -08:00
builtin-runstatus.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-shortlog.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-show-branch.c show-branch --reflog: fix show_date() call 2007-01-20 19:02:03 -08:00
builtin-show-ref.c show-ref: fix --exclude-existing 2006-12-18 13:40:25 -08:00
builtin-stripspace.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-symbolic-ref.c Fix git-fetch while on detached HEAD not to give needlessly alarming errors 2007-01-15 15:35:07 -08:00
builtin-tar-tree.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
builtin-unpack-objects.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
builtin-update-index.c trust-executable-bit: fix breakage for symlinks 2006-11-22 16:36:49 -08:00
builtin-update-ref.c
builtin-upload-archive.c short i/o: fix calls to read to use xread or read_in_full 2007-01-08 15:44:47 -08:00
builtin-verify-pack.c Load core configuration in git-verify-pack. 2006-12-29 11:36:45 -08:00
builtin-write-tree.c
builtin.h Make git-describe a builtin. 2007-01-10 08:27:01 -08:00
cache-tree.c Catch errors when writing an index that contains invalid objects. 2006-11-13 14:26:51 -08:00
cache-tree.h
cache.h Do not verify filenames in a bare repository 2007-01-20 19:10:26 -08:00
check-builtins.sh cherry is built-in, do not ship git-cherry.sh 2006-11-05 11:26:21 -08:00
check-racy.c
color.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
color.h
combine-diff.c Merge branch 'jc/combined' 2006-10-26 02:07:18 -07:00
commit.c Use log output encoding in --pretty=email headers. 2007-01-13 10:10:20 -08:00
commit.h Merge branch 'master' into js/shallow 2006-12-27 02:43:46 -08:00
config.c config_set_multivar(): disallow newlines in keys 2007-01-19 17:55:14 -08:00
config.mak.in remove merge-recursive-old 2006-11-21 20:55:39 -08:00
configure.ac Remove NO_ACCURATE_DIFF options from build systems 2006-12-22 23:13:28 -08:00
connect.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
convert-objects.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
copy.c
COPYING
csum-file.c
csum-file.h
ctype.c
daemon.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
date.c show_date(): fix relative dates 2007-01-20 18:57:47 -08:00
delta.h
diff-delta.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
diff-lib.c diff-index --cached --raw: show tree entry on the LHS for unmerged entries. 2007-01-06 22:57:42 -08:00
diff.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
diff.h diff-index --cached --raw: show tree entry on the LHS for unmerged entries. 2007-01-06 22:57:42 -08:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
diffcore-pickaxe.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
diffcore-rename.c Bypass expensive content comparsion during rename detection. 2006-12-14 02:40:33 -08:00
diffcore.h diff-index --cached --raw: show tree entry on the LHS for unmerged entries. 2007-01-06 22:57:42 -08:00
dir.c short i/o: fix calls to read to use xread or read_in_full 2007-01-08 15:44:47 -08:00
dir.h Fix 'git add' with .gitignore 2006-12-29 11:01:31 -08:00
dump-cache-tree.c
entry.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
environment.c Introduce is_bare_repository() and core.bare configuration variable 2007-01-07 21:36:35 -08:00
exec_cmd.c Use preprocessor constants for environment variable names. 2006-12-19 01:51:51 -08:00
exec_cmd.h
fetch-pack.c Update documentation of fetch-pack, push and send-pack 2007-01-19 17:54:32 -08:00
fetch.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
fetch.h
fsck-objects.c Better error messages for corrupt databases 2007-01-11 14:44:17 -08:00
generate-cmdlist.sh use 'init' instead of 'init-db' for shipped docs and tools 2007-01-12 13:36:16 -08:00
git-add--interactive.perl git-add --interactive: hunk splitting 2006-12-18 16:28:45 -08:00
git-am.sh Merge branch 'jc/bare' 2007-01-11 16:50:36 -08:00
git-applymbox.sh -u is now default for 'git-mailinfo'. 2007-01-09 21:32:49 -08:00
git-applypatch.sh
git-archimport.perl use 'init' instead of 'init-db' for shipped docs and tools 2007-01-12 13:36:16 -08:00
git-bisect.sh
git-checkout.sh Use merge-recursive in git-checkout -m (branch switching) 2007-01-16 21:32:06 -08:00
git-clean.sh Disallow working directory commands in a bare repository. 2007-01-10 15:03:09 -08:00
git-clone.sh use 'init' instead of 'init-db' for shipped docs and tools 2007-01-12 13:36:16 -08:00
git-commit.sh Merge branch 'jc/int' 2007-01-14 12:04:25 -08:00
git-compat-util.h Use fixed-size integers for the on-disk pack structure. 2007-01-18 14:11:50 -08:00
git-cvsexportcommit.perl Make cvsexportcommit work with filenames with spaces and non-ascii characters. 2006-12-11 14:16:54 -08:00
git-cvsimport.perl use 'init' instead of 'init-db' for shipped docs and tools 2007-01-12 13:36:16 -08:00
git-cvsserver.perl cvsserver: fix revision number during file adds 2007-01-08 21:45:13 -08:00
git-fetch.sh Use cd_to_toplevel in scripts that implement it by hand. 2007-01-12 16:54:38 -08:00
git-gc.sh Use 'repack -a -d -l' instead of 'repack -a -d' in git-gc 2006-12-27 14:23:21 -08:00
git-instaweb.sh instaweb: Nicer error message when the http daemon isn't found 2007-01-06 10:44:59 -08:00
git-lost-found.sh
git-ls-remote.sh make git a bit less cryptic on fetch errors 2006-12-18 15:31:28 -08:00
git-merge-octopus.sh
git-merge-one-file.sh Use git-merge-file in git-merge-one-file, too 2006-12-21 20:33:06 -08:00
git-merge-ours.sh
git-merge-resolve.sh
git-merge-stupid.sh
git-merge.sh Merge branch 'sp/merge' (early part) 2007-01-14 12:03:53 -08:00
git-p4import.py use 'init' instead of 'init-db' for shipped docs and tools 2007-01-12 13:36:16 -08:00
git-parse-remote.sh Fix git-fetch while on detached HEAD not to give needlessly alarming errors 2007-01-15 15:35:07 -08:00
git-pull.sh git-pull: disallow implicit merging to detached HEAD 2007-01-15 15:37:22 -08:00
git-quiltimport.sh Replace "echo -n" with printf in shell scripts. 2007-01-15 22:23:21 -08:00
git-rebase.sh git-rebase: allow rebasing a detached HEAD. 2007-01-20 21:31:00 -08:00
git-relink.perl
git-remote.perl git-remote: no longer silent on unknown commands. 2007-01-13 10:03:44 -08:00
git-repack.sh Make git-prune-packed a bit more chatty. 2007-01-12 15:10:29 -08:00
git-request-pull.sh Pass -M to diff in request-pull 2006-12-04 13:39:27 -08:00
git-reset.sh Shell syntax fix in git-reset 2007-01-18 14:22:24 -08:00
git-resolve.sh
git-revert.sh Use nice names in conflict markers during cherry-pick/revert. 2007-01-14 23:17:32 -08:00
git-send-email.perl send-email: work around double encoding of in-body From field. 2007-01-10 13:39:16 -08:00
git-sh-setup.sh Define cd_to_toplevel shell function in git-sh-setup 2007-01-12 16:54:38 -08:00
git-svn.perl git-svn: print and flush authentication prompts to STDERR 2007-01-15 22:30:42 -08:00
git-svnimport.perl use 'init' instead of 'init-db' for shipped docs and tools 2007-01-12 13:36:16 -08:00
git-tag.sh git-tag -d: allow deleting multiple tags at once. 2007-01-20 19:19:12 -08:00
git-verify-tag.sh git-verify-tag: make sure we remove temporary file. 2007-01-03 12:34:20 -08:00
GIT-VERSION-GEN GIT v1.5.0-rc2 2007-01-20 23:44:55 -08:00
git.c Merge branch 'jc/bare' 2007-01-11 16:50:36 -08:00
git.spec.in Get rid of the dependency on RCS' merge program 2006-12-12 21:47:29 -08:00
gitk [PATCH] Make gitk work when launched in a subdirectory 2007-01-13 16:15:09 +11:00
grep.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
grep.h
hash-object.c
help.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
http-fetch.c Don't die in git-http-fetch when fetching packs. 2007-01-09 17:54:25 -08:00
http-push.c Don't die in git-http-fetch when fetching packs. 2007-01-09 17:54:25 -08:00
http.c
http.h Work around http-fetch built with cURL 7.16.0 2006-12-27 16:44:30 -08:00
ident.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
imap-send.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
index-pack.c index-pack: write-or-die instead of unchecked write-in-full. 2007-01-11 13:19:31 -08:00
INSTALL use 'init' instead of 'init-db' for shipped docs and tools 2007-01-12 13:36:16 -08:00
interpolate.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
interpolate.h
list-objects.c
list-objects.h
local-fetch.c short i/o: fix calls to read to use xread or read_in_full 2007-01-08 15:44:47 -08:00
lockfile.c Print a more accurate error message when we fail to create a lock file. 2007-01-06 10:42:49 -08:00
log-tree.c Fix --walk-reflog with --pretty=oneline 2007-01-20 21:32:31 -08:00
log-tree.h
Makefile reflog-walk: build fixes 2007-01-20 21:32:31 -08:00
merge-base.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
merge-file.c Get rid of the dependency on RCS' merge program 2006-12-12 21:47:29 -08:00
merge-index.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
merge-recursive.c Convert output messages in merge-recursive to past tense. 2007-01-14 12:20:39 -08:00
merge-tree.c
mktag.c
mktree.c
object-refs.c
object.c
object.h
pack-check.c pack-check.c::verify_packfile(): don't run SHA-1 update on huge data 2007-01-04 22:17:59 -08:00
pack-redundant.c
pack.h Use fixed-size integers for the on-disk pack structure. 2007-01-18 14:11:50 -08:00
pager.c pager: default to LESS=FRSX not LESS=FRS 2006-10-22 20:28:10 -07:00
patch-delta.c make patch_delta() error cases a bit more verbose 2006-12-18 15:30:17 -08:00
patch-id.c
path-list.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
path-list.h
path.c Merge branch 'jc/detached-head' 2007-01-11 16:47:34 -08:00
peek-remote.c
pkt-line.c make git a bit less cryptic on fetch errors 2006-12-18 15:31:28 -08:00
pkt-line.h
quote.c Merge branch 'maint' 2006-10-30 19:38:50 -08:00
quote.h
reachable.c Sanitize for_each_reflog_ent() 2007-01-09 03:04:04 -08:00
reachable.h Move traversal of reachable objects into a separate library. 2007-01-06 22:57:34 -08:00
read-cache.c write-cache: do not leak the serialized cache-tree data. 2007-01-11 12:25:16 -08:00
README sanitize content of README file 2007-01-17 12:03:50 -08:00
receive-pack.c Use /dev/null for update hook stdin. 2006-12-30 22:22:14 -08:00
reflog-walk.c --walk-reflogs: actually find the right commit by date. 2007-01-20 21:32:31 -08:00
reflog-walk.h Fix --walk-reflog with --pretty=oneline 2007-01-20 21:32:31 -08:00
refs.c show-branch --reflog: show the reflog message at the top. 2007-01-19 17:57:53 -08:00
refs.h Extend read_ref_at() to be usable from places other than sha1_name. 2007-01-19 17:57:53 -08:00
revision.c Teach the revision walker to walk by reflogs with --walk-reflogs 2007-01-20 21:32:31 -08:00
revision.h Teach the revision walker to walk by reflogs with --walk-reflogs 2007-01-20 21:32:31 -08:00
rsh.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
rsh.h
run-command.c Use /dev/null for update hook stdin. 2006-12-30 22:22:14 -08:00
run-command.h Use /dev/null for update hook stdin. 2006-12-30 22:22:14 -08:00
send-pack.c rename --exec to --receive-pack for push and send-pack 2007-01-19 17:54:33 -08:00
server-info.c
setup.c Do not verify filenames in a bare repository 2007-01-20 19:10:26 -08:00
sha1_file.c Use fixed-size integers for .idx file I/O 2007-01-18 14:11:50 -08:00
sha1_name.c Extend read_ref_at() to be usable from places other than sha1_name. 2007-01-19 17:57:53 -08:00
shallow.c get_shallow_commits: Avoid memory leak if a commit has been reached already. 2006-11-24 15:42:50 -08:00
shell.c
show-index.c Fix typo in show-index.c 2006-10-20 16:50:36 -07:00
sideband.c
sideband.h
ssh-fetch.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
ssh-pull.c
ssh-push.c
ssh-upload.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
strbuf.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
strbuf.h
tag.c
tag.h
tar.h
test-date.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
test-delta.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
test-sha1.c
test-sha1.sh
trace.c short i/o: clean up the naming for the write_{in,or}_xxx family 2007-01-08 15:44:47 -08:00
tree-diff.c Make git-cherry handle root trees 2006-10-26 18:31:17 -07:00
tree-walk.c get_tree_entry: map blank requested entry to tree root 2007-01-09 14:08:41 -08:00
tree-walk.h
tree.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
tree.h
unpack-file.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
unpack-trees.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
unpack-trees.h read-tree: further loosen "working file will be lost" check. 2006-12-05 23:25:52 -08:00
update-server-info.c
upload-pack.c short i/o: fix calls to write to use xwrite or write_in_full 2007-01-08 15:44:47 -08:00
usage.c Introduce a global level warn() function. 2006-12-21 22:59:34 -08:00
utf8.c commit-tree: cope with different ways "utf-8" can be spelled. 2006-12-30 15:58:43 -08:00
utf8.h commit-tree: cope with different ways "utf-8" can be spelled. 2006-12-30 15:58:43 -08:00
var.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
write_or_die.c Remove read_or_die in favor of better error messages. 2007-01-14 00:42:41 -08:00
wt-status.c simplify the "no changes added to commit" message 2007-01-13 18:48:10 -08:00
wt-status.h Provide better feedback for the untracked only case in status output 2007-01-10 14:29:21 -08:00
xdiff-interface.c move read_mmfile() into xdiff-interface 2006-12-21 23:10:14 -08:00
xdiff-interface.h move read_mmfile() into xdiff-interface 2006-12-21 23:10:14 -08:00

////////////////////////////////////////////////////////////////

	GIT - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, 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

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.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

Please read the file INSTALL for installation instructions.
See Documentation/tutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands,
and "man git-commandname" for documentation of each command.
CVS users may also want to read Documentation/cvs-migration.txt.

Many Git online resources are accessible from http://git.or.cz/
including full documentation and Git related tools.

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. 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
http://marc.theaimsgroup.com/?l=git and other archival sites.