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 22e407951e Teach "am" and "rebase" to mark the original position with ORIG_HEAD
"merge" and "reset" leave the original point in history in ORIG_HEAD,
which makes it easy to go back to where you were before you inflict a
major damage to your history and realize that you do not like the result
at all.  These days with reflog, we technically do not need to use
ORIG_HEAD, but it is a handy way nevertheless.

This teaches "am" and "rebase" (all forms --- the vanilla one that uses
"am" as its backend, "-m" variant that cherry-picks, and "--interactive")
to do the same.

The original idea and a partial implementation to do this only for "rebase
-m" was by Brian Gernhardt; this extends on his idea.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-07-07 13:12:56 -07:00
arm
compat Windows: Fix ntohl() related warnings about printf formatting 2008-06-26 08:47:17 +02:00
contrib hg-to-git: use git init instead of git init-db 2008-07-05 23:35:12 -07:00
Documentation Merge branch 'qq/maint' 2008-07-05 18:33:16 -07:00
git-gui Merge git://repo.or.cz/git-gui 2008-05-26 19:10:43 -07:00
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2008-06-11 16:22:53 -07:00
gitweb Merge branch 'lw/gitweb' 2008-06-25 13:19:53 -07:00
mozilla-sha1
perl Git.pm: fix return value of config method 2008-06-01 22:28:27 -07:00
ppc
t Fix apply --recount handling of no-EOL line 2008-07-05 00:37:44 -07:00
templates Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
xdiff
.gitattributes
.gitignore Retire 'stupid' merge strategy 2008-07-05 10:43:46 -07:00
.mailmap
abspath.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
alias.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
alloc.c
archive-tar.c Teach new attribute 'export-ignore' to git-archive 2008-06-09 14:53:46 -07:00
archive-zip.c Teach new attribute 'export-ignore' to git-archive 2008-06-09 14:53:46 -07:00
archive.c Teach new attribute 'export-ignore' to git-archive 2008-06-09 14:53:46 -07:00
archive.h Teach new attribute 'export-ignore' to git-archive 2008-06-09 14:53:46 -07:00
attr.c Ignore .gitattributes in bare repositories 2008-06-09 15:08:26 -07:00
attr.h
base85.c
blob.c
blob.h
branch.c Allow tracking branches to set up rebase by default. 2008-05-12 17:16:40 -07:00
branch.h
builtin-add.c git add: add long equivalents of '-u' and '-f' options 2008-06-14 12:47:31 -07:00
builtin-annotate.c
builtin-apply.c Fix apply --recount handling of no-EOL line 2008-07-05 00:37:44 -07:00
builtin-archive.c
builtin-blame.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-branch.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-bundle.c
builtin-cat-file.c git cat-file: Fix memory leak in batch mode 2008-06-28 19:50:56 -07:00
builtin-check-attr.c
builtin-check-ref-format.c
builtin-checkout-index.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-checkout.c checkout: "best effort" checkout 2008-05-29 17:35:22 -07:00
builtin-clean.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-clone.c Merge branch 'js/maint-clone-insteadof' 2008-07-01 16:22:22 -07:00
builtin-commit-tree.c commit-tree: lift completely arbitrary limit of 16 parents 2008-06-27 23:36:59 -07:00
builtin-commit.c Merge branch 'qq/maint' 2008-07-05 18:33:16 -07:00
builtin-config.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-count-objects.c
builtin-describe.c Fix describe --tags --long so it does not segfault 2008-07-02 21:21:59 -07:00
builtin-diff-files.c Merge branch 'jc/diff-no-no-index' 2008-05-26 22:38:19 -07:00
builtin-diff-index.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-diff-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-diff.c Merge branch 'jc/diff-no-no-index' 2008-05-26 22:38:19 -07:00
builtin-fast-export.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-fetch--tool.c
builtin-fetch-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-fetch.c fetch: give a hint to the user when local refs fail to update 2008-06-29 23:47:41 -07:00
builtin-fmt-merge-msg.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-for-each-ref.c for-each-ref: implement missing tag values 2008-06-25 11:05:26 -07:00
builtin-fsck.c move show_pack_info() where it belongs 2008-06-24 23:58:57 -07:00
builtin-gc.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-grep.c
builtin-http-fetch.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-init-db.c git-init: accept --bare option 2008-05-28 18:31:19 -07:00
builtin-log.c builtin-log.c: Use 'git_config_string' to get 'format.subjectprefix' and 'format.suffix' 2008-07-05 17:42:24 -07:00
builtin-ls-files.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-ls-remote.c
builtin-ls-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-mailinfo.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-mailsplit.c mailsplit: minor clean-up in read_line_with_nul() 2008-05-25 13:23:57 -07:00
builtin-merge-base.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-merge-file.c
builtin-merge-ours.c
builtin-merge-recursive.c clone: create intermediate directories of destination repo 2008-06-25 11:44:15 -07:00
builtin-mv.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-name-rev.c Merge branch 'maint' 2008-06-06 09:21:48 -07:00
builtin-pack-objects.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-pack-refs.c Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
builtin-prune-packed.c Remove now unnecessary 'sync()' calls 2008-05-31 14:49:29 -07:00
builtin-prune.c Remove now unnecessary 'sync()' calls 2008-05-31 14:49:29 -07:00
builtin-push.c
builtin-read-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-reflog.c Make git reflog expire honour core.sharedRepository. 2008-06-15 15:54:06 -07:00
builtin-remote.c "remote prune": be quiet when there is nothing to prune 2008-06-11 23:43:25 -07:00
builtin-rerere.c builtin-rerere: fix a small leak 2008-06-17 16:39:59 -07:00
builtin-reset.c Allow "git-reset path" when unambiguous 2008-06-25 18:16:36 -07:00
builtin-rev-list.c Move read_revisions_from_stdin from builtin-rev-list.c to revision.c 2008-07-05 17:30:58 -07:00
builtin-rev-parse.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-revert.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-rm.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-send-pack.c
builtin-shortlog.c
builtin-show-branch.c Merge branch 'maint' 2008-05-26 19:49:01 -07:00
builtin-show-ref.c
builtin-stripspace.c
builtin-symbolic-ref.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-tag.c Fix "config_error_nonbool" used with value instead of key 2008-07-05 23:31:09 -07:00
builtin-tar-tree.c
builtin-unpack-objects.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-update-index.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
builtin-update-ref.c Make old sha1 optional with git update-ref -d 2008-06-02 22:52:39 -07:00
builtin-upload-archive.c avoid off-by-one error in run_upload_archive 2008-06-28 13:43:21 -07:00
builtin-verify-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
builtin-verify-tag.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin-write-tree.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
builtin.h Print info about "git help COMMAND" on git's main usage pages 2008-06-06 09:22:18 -07:00
bundle.c
bundle.h
cache-tree.c
cache-tree.h
cache.h Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
check_bindir Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
check-builtins.sh
check-racy.c
color.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
color.h Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
combine-diff.c Merge branch 'jc/maint-combine-diff-pre-context' into maint 2008-06-25 11:20:01 -07:00
command-list.txt
commit.c Remove unused code in parse_commit_buffer() 2008-06-08 13:46:37 -07:00
commit.h
config.c Merge branch 'lt/config-fsync' 2008-06-25 13:19:49 -07:00
config.mak.in Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
configure.ac Consistency: Use "libcurl" instead of "cURL library" and "curl" 2008-06-15 13:35:10 -07:00
connect.c Windows: Disambiguate DOS style paths from SSH URLs. 2008-06-26 08:45:08 +02:00
convert.c convert.c: Use 'git_config_string' to get 'smudge' and 'clean' 2008-07-05 17:42:30 -07:00
copy.c
COPYING
csum-file.c Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
csum-file.h Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
ctype.c
daemon.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
date.c Make my_mktime() public and rename it to tm_to_time_t() 2008-06-23 13:40:29 +02:00
decorate.c fast-export --export-marks: fix off by one error 2008-07-03 00:34:59 -07:00
decorate.h
delta.h
diff-delta.c
diff-lib.c "git diff": do not ignore index without --no-index 2008-05-24 00:16:39 -07:00
diff-no-index.c git diff --no-index: default to page like other diff frontends 2008-05-26 22:35:07 -07:00
diff.c Merge branch 'qq/maint' 2008-07-05 18:33:16 -07:00
diff.h Merge branch 'jc/diff-no-no-index' 2008-05-26 22:38:19 -07:00
diffcore-break.c
diffcore-delta.c optimize diffcore-delta by sorting hash entries. 2007-10-04 00:05:36 -07:00
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h
dir.c
dir.h
dump-cache-tree.c
entry.c
environment.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
exec_cmd.c Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
exec_cmd.h
fast-import.c Make pack creation always fsync() the result 2008-05-31 14:46:57 -07:00
fetch-pack.h
fixup-builtins
fsck.c
fsck.h
generate-cmdlist.sh
git-add--interactive.perl
git-am.sh Teach "am" and "rebase" to mark the original position with ORIG_HEAD 2008-07-07 13:12:56 -07:00
git-archimport.perl
git-bisect.sh bisect: use "$GIT_DIR/BISECT_START" to check if we are bisecting 2008-05-28 11:47:58 -07:00
git-compat-util.h Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
git-cvsexportcommit.perl Merge branch 'js/cvsexportcommit' 2008-05-25 13:37:20 -07:00
git-cvsimport.perl git-cvsimport: do not fail when CVSROOT is / 2008-06-10 22:24:01 -07:00
git-cvsserver.perl git-cvsserver: add ability to guess -kb from contents 2008-05-16 12:05:35 -07:00
git-filter-branch.sh Merge 1.5.5.3 in 2008-05-27 22:34:19 -07:00
git-instaweb.sh git-instaweb: improve auto-discovery of httpd and call conventions. 2008-06-13 22:08:30 -07:00
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-merge.sh git-merge.sh: fix typo in usage message: sucesses --> succeeds 2008-06-19 14:13:02 -07:00
git-mergetool.sh Remove the use of '--' in merge program invocation 2008-06-19 14:13:55 -07:00
git-parse-remote.sh
git-pull.sh pull --rebase: exit early when the working directory is dirty 2008-05-22 23:05:11 -07:00
git-quiltimport.sh
git-rebase--interactive.sh Teach "am" and "rebase" to mark the original position with ORIG_HEAD 2008-07-07 13:12:56 -07:00
git-rebase.sh Teach "am" and "rebase" to mark the original position with ORIG_HEAD 2008-07-07 13:12:56 -07:00
git-relink.perl
git-repack.sh repack.usedeltabaseoffset config option now defaults to "true" 2008-06-25 10:56:40 -07:00
git-request-pull.sh
git-send-email.perl git-send-email: Do not attempt to STARTTLS more than once 2008-07-02 22:41:18 -07:00
git-sh-setup.sh Windows: Work around incompatible sort and find. 2008-06-26 08:45:09 +02:00
git-stash.sh Ignore dirty submodule states during rebase and stash 2008-05-15 16:12:43 -07:00
git-submodule.sh git-submodule - Fix errors regarding resolve_relative_url 2008-06-14 11:34:00 -07:00
git-svn.perl git-svn: don't sanitize remote names in config 2008-06-28 20:55:45 -07:00
GIT-VERSION-GEN GIT-VERSION-GEN: do not fail if a 'HEAD' file exists in the working copy 2008-06-28 10:53:11 -07:00
git-web--browse.sh
git.c Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
git.spec.in Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
graph.c git log --graph: print '*' for all commits, including merges 2008-06-06 11:56:43 -07:00
graph.h log --graph --left-right: show left/right information in place of '*' 2008-05-25 12:06:52 -07:00
grep.c
grep.h
hash-object.c Merge branch 'js/config-cb' 2008-05-25 14:25:02 -07:00
hash.c
hash.h
help.c Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
http-push.c move show_pack_info() where it belongs 2008-06-24 23:58:57 -07:00
http-walker.c move show_pack_info() where it belongs 2008-06-24 23:58:57 -07:00
http.c http.c: Use 'git_config_string' to clean up SSL config. 2008-07-05 17:42:46 -07:00
http.h Work around gcc warnings from curl headers 2008-07-04 00:37:40 -07:00
ident.c
imap-send.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
index-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
INSTALL INSTALL: Update section about git-frotz form. 2008-07-05 23:31:42 -07:00
interpolate.c
interpolate.h
list-objects.c
list-objects.h
ll-merge.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
ll-merge.h
lockfile.c rollback lock files on more signals than just SIGINT 2008-05-31 14:33:59 -07:00
log-tree.c log --graph --left-right: show left/right information in place of '*' 2008-05-25 12:06:52 -07:00
log-tree.h
mailmap.c
mailmap.h
Makefile Retire 'stupid' merge strategy 2008-07-05 10:43:46 -07:00
match-trees.c
merge-file.c
merge-index.c
merge-recursive.h
merge-tree.c
mktag.c
mktree.c
name-hash.c
object.c
object.h
pack-check.c verify-pack: check packed object CRC when using index version 2 2008-06-24 23:58:57 -07:00
pack-redundant.c
pack-refs.c Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-refs.h Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-revindex.c call init_pack_revindex() lazily 2008-06-23 21:25:20 -07:00
pack-revindex.h call init_pack_revindex() lazily 2008-06-23 21:25:20 -07:00
pack-write.c pack.indexversion config option now defaults to 2 2008-06-25 21:30:55 -07:00
pack.h verify-pack: check packed object CRC when using index version 2 2008-06-24 23:58:57 -07:00
pager.c Windows: Make the pager work. 2008-06-26 08:47:15 +02:00
parse-options.c Merge branch 'maint' 2008-06-22 18:39:37 -07:00
parse-options.h
patch-delta.c
patch-id.c
patch-ids.c
patch-ids.h
path-list.c
path-list.h
path.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
pkt-line.c
pkt-line.h
pretty.c log --pretty: do not accept bogus "--prettyshort" 2008-05-25 20:29:07 -07:00
progress.c progress.c: avoid use of dynamic-sized array 2008-06-08 13:56:32 -07:00
progress.h
quote.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
quote.h Make private quote_path() in wt-status.c available as quote_path_relative() 2008-03-07 21:22:25 -08:00
reachable.c
reachable.h
read-cache.c Merge branch 'lt/racy-empty' 2008-06-22 14:34:20 -07:00
README
receive-pack.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
reflog-walk.c
reflog-walk.h
refs.c Merge branch 'db/clone-in-c' 2008-05-25 13:41:37 -07:00
refs.h
RelNotes Start draft release notes for 1.5.6.2 2008-07-01 17:09:21 -07:00
remote.c clean up error conventions of remote.c:match_explicit 2008-06-18 12:39:13 -07:00
remote.h Merge branch 'db/clone-in-c' 2008-05-25 13:41:37 -07:00
revision.c Move read_revisions_from_stdin from builtin-rev-list.c to revision.c 2008-07-05 17:30:58 -07:00
revision.h Move read_revisions_from_stdin from builtin-rev-list.c to revision.c 2008-07-05 17:30:58 -07:00
run-command.c Windows: Implement a custom spawnve(). 2008-06-26 08:45:10 +02:00
run-command.h Windows: Implement asynchronous functions as threads. 2008-06-26 08:45:08 +02:00
send-pack.h
server-info.c
setup.c Merge branch 'j6t/mingw' 2008-07-02 21:57:52 -07:00
sha1_file.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
sha1_name.c
sha1-lookup.c
sha1-lookup.h
shallow.c
shell.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
shortlog.h
show-index.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
sideband.c
sideband.h
strbuf.c
strbuf.h
symlinks.c
tag.c
tag.h
tar.h
test-absolute-path.c
test-chmtime.c
test-date.c
test-delta.c
test-genrandom.c
test-match-trees.c
test-parse-options.c Extend parse-options test suite 2008-06-22 18:15:18 -07:00
test-sha1.c
test-sha1.sh
thread-utils.c
thread-utils.h
trace.c
transport.c Merge branch 'qq/maint' 2008-07-05 18:33:16 -07:00
transport.h
tree-diff.c
tree-walk.c Fix tree-walking compare_entry() in the presense of --prefix 2008-03-09 00:43:47 -08:00
tree-walk.h
tree.c
tree.h
unpack-file.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
unpack-trees.c unpack_trees(): allow callers to differentiate worktree errors from merge errors 2008-05-29 17:35:21 -07:00
unpack-trees.h unpack-trees: allow Porcelain to give different error messages 2008-05-19 19:30:13 -07:00
update-server-info.c
upload-pack.c Windows: Implement asynchronous functions as threads. 2008-06-26 08:45:08 +02:00
usage.c
utf8.c
utf8.h
var.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
walker.c Fix "git clone http://$URL" to check out the worktree when asked 2008-06-04 13:33:25 -07:00
walker.h
wrapper.c Shrink the git binary a bit by avoiding unnecessary inline functions 2008-06-22 18:46:00 -07:00
write_or_die.c Windows: Work around an oddity when a pipe with no reader is written to. 2008-06-26 08:47:15 +02:00
ws.c Teach "diff --check" about new blank lines at end 2008-06-26 22:07:26 -07:00
wt-status.c Fix "config_error_nonbool" used with value instead of key 2008-07-05 23:31:09 -07:00
wt-status.h Add argument 'no' commit/status option -u|--untracked-files 2008-06-09 15:48:19 -07:00
xdiff-interface.c
xdiff-interface.h

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

	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.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.