Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Git for Windows support utf-8 filepath
C Shell Perl Tcl Python Emacs Lisp Other
Failed to load latest commit information.
Documentation Add a few more values for receive.denyCurrentBranch
block-sha1 msvc: Select the "fast" definition of the {get,put}_be32() macros
builtin Amend "git grep -O -i: if the pager is 'less', pass the '-i' option"
compat bug fixed: pass right argc/argv.
contrib Merge branch 'mk/grep-pcre'
git-gui git gui: set GIT_ASKPASS=git-gui--askpass if not set yet
git_remote_helpers remote-helpers: build in platform independent directory
gitk-git Fix another invocation of git from gitk with an overly long command-line
gitweb Gitweb: make line number toggling work for Firefox and Safari
perl Use stream-like writing in cat_blob()
po i18n: Makefile: "pot" target to extract messages marked for translation
ppc fix openssl headers conflicting with custom SHA1 implementations
t t5407: Fix line-ending dependency in post-rewrite.args
templates Modernize git calling conventions in hook templates
vcs-svn Merge branch 'rj/sparse'
xdiff Merge branch 'cb/diff-fname-optim' into maint
.gitattributes .gitattributes: detect 8-space indent in shell scripts
.gitignore Merge branch 'jn/gitweb-js'
.mailmap Martin Langhoff has a new e-mail address
COPYING Update COPYING with GPLv2 with new FSF address
GIT-VERSION-GEN Start 1.7.6 cycle
INSTALL docs: default to more modern toolset
LGPL-2.1 provide a copy of the LGPLv2.1
Makefile Merge commit 'v0.7.6.msysgit.0' into utf8-filepath-1.7.6
README README: git lives at these days
RelNotes Start 1.7.6 cycle
abspath.c Merge branch 'ef/maint-win-verify-path' into next
aclocal.m4 configure: use AC_LANG_PROGRAM consistently
advice.c Reword "detached HEAD" notification
advice.h Reword "detached HEAD" notification
alias.c split_cmdline: Allow caller to access error string
alloc.c unbreak and eliminate NO_C99_FORMAT
archive-tar.c archive-tar.c: squelch a type mismatch warning
archive-zip.c archive: remove unused headers
archive.c Convert read_tree{,_recursive} to support struct pathspec
archive.h archive: do not read .gitattributes in working directory
attr.c sparse: Fix some "symbol not declared" warnings
attr.h enums: omit trailing comma for portability
base85.c Standardize do { ... } while (0) style
bisect.c bisect: refactor sha1_array into a generic sha1 list
bisect.h builtin-rev-list.c: mark file-local function static
blob.c Replace parse_blob() with an explanatory comment
blob.h Replace parse_blob() with an explanatory comment
branch.c Merge branch 'jh/maint-do-not-track-non-branches'
branch.h Change incorrect "remote branch" to "remote tracking branch" in C code
builtin.h repo-config: add deprecation warning
bundle.c bundle: Use OFS_DELTA in bundle files
bundle.h Move bundle specific stuff into bundle.[ch]
cache-tree.c cache_tree_free: Fix small memory leak
cache-tree.h Optimize "diff-index --cached" using cache-tree
cache.h Allow using UNC path for git repository No longer force use of /usr/bin/sort
check-racy.c ce_match_stat, run_diff_files: use symbolic constants for readability
check_bindir Move all dashed-form commands to libexecdir
color.c Share color list between graph and show-branch
color.h Share color list between graph and show-branch
combine-diff.c combine-diff: respect textconv attributes
command-list.txt Add git-http-backend to command-list.
commit.c Add const to parse_{commit,tag}_buffer()
commit.h Merge branch 'jk/format-patch-am'
config.c Add a Windows-specific fallback to getenv("HOME"); Merge branch 'kk/maint-prefix-in-config-mak' configure: Check for libpcre
connect.c Merge branch 'jk/git-connection-deadlock-fix' into maint-1.7.4
convert.c convert: CRLF_INPUT is a no-op in the output codepath
copy.c preserve mtime of local clone
csum-file.c sparse: Fix errors and silence warnings
csum-file.h Merge branch 'maint'
ctype.c magic pathspec: futureproof shorthand form
daemon.c Fix sparse warnings
date.c date: avoid "X years, 12 months" in relative dates
decorate.c Unify signedness in hashing calls
decorate.h decorate: allow const objects to be decorated
delta.h Fix big left-shifts of unsigned char
diff-delta.c fix >4GiB source delta assertion failure
diff-lib.c diff-index --quiet: learn the "stop feeding the backend early" logic
diff-no-index.c Convert struct diff_options to use struct pathspec
diff.c Merge branch 'jk/diff-not-so-quick' into next
diff.h Merge branch 'jk/diff-not-so-quick' into next
diffcore-break.c Add a macro DIFF_QUEUE_CLEAR.
diffcore-delta.c Fix diff -B/--dirstat miscounting of newly added contents
diffcore-order.c Use xmemdupz() in many places.
diffcore-pickaxe.c diffcore-pickaxe.c: a void function shouldn't try to return something
diffcore-rename.c diffcore-rename.c: avoid set-but-not-used warning
diffcore.h diff: pass the entire diff-options to diffcore_pickaxe()
dir.c Merge branch 'nd/struct-pathspec'
dir.h Merge branch 'nd/maint-setup'
editor.c editor: use run_command's shell feature
entry.c streaming_write_entry(): support files with holes
environment.c core.hidedotfiles: hide '.git' dir by default
exec_cmd.c Name make_*_path functions more accurately
exec_cmd.h Refactor git_set_argv0_path() to git_extract_argv0_path()
fast-import.c fast-import: fix option parser for no-arg options
fetch-pack.h standardize brace placement in struct definitions
fixup-builtins make remove-dashes: apply to scripts and programs as well, not just t…
fsck.c Merge branch 'jm/maint-misc-fix' into maint
fsck.h Check the format of more printf-type functions standardize brace placement in struct definitions
gettext.c i18n: do not poison translations unless GIT_GETTEXT_POISON envvar is set
gettext.h i18n: avoid parenthesized string as array initializer
git-add--interactive.perl add -i: ignore terminal escape sequences git am: ignore dirty submodules
git-archimport.perl perl: use "use warnings" instead of -w i18n: git-bisect bisect_next_check "You need to" message
git-compat-util.h Allow using UNC path for git repository
git-cvsexportcommit.perl perl: use "use warnings" instead of -w
git-cvsimport.perl Merge branch 'gr/cvsimport-alternative-cvspass-location' into maint
git-cvsserver.perl Merge branch 'ab/require-perl-5.8' difftool: provide basename to external tools
git-difftool.perl difftool: Fix failure on Cygwin filter-branch: retire --remap-to-ancestor git-instaweb: Change how gitweb.psgi is made runnable as standalone app lost-found: use git rev-parse -q merge-octopus: Work around environment issue on Windows Merge branch 'jk/merge-one-file-working-tree' into maint Convert to use quiet option when available Merge branch 'da/git-prefix-everywhere' into next mergetool: Teach about submodules Merge branch 'mz/rebase' i18n: git-pull eval_gettext + warning message git-quiltimport: preserve standard input to be able to read user input git-rebase--am: remove unnecessary --3way option rebase: write a reflog entry when finishing rebase -m: don't print exit code 2 when merge fails rebase: write a reflog entry when finishing
git-relink.perl Merge branch 'ab/require-perl-5.8' into maint Remove python 2.5'isms Merge branch 'tr/maint-git-repack-tmpfile' into maint git-request-pull: open-code the only invocation of get_remote_url
git-send-email.perl send-email: handle Windows paths for display just like we do for proc… add GIT_GETTEXT_POISON support submodule: Fix t7400, t7405, t7406 for msysGit i18n: git-stash drop_stash say/die messages submodule: Fix t7400, t7405, t7406 for msysGit
git-svn.perl Merge branch 'maint' web--browse: better support for chromium
git.c Merge branch 'da/git-prefix-everywhere' into next Add gitweb subpackage
graph.c Share color list between graph and show-branch
graph.h Enable custom schemes for column colors in the graph API
grep.c git-grep: Learn PCRE
grep.h git-grep: Learn PCRE
hash.c for_each_hash: allow passing a 'void *data' pointer to callback
hash.h for_each_hash: allow passing a 'void *data' pointer to callback
help.c help: always suggest common-cmds if prefix of cmd
help.h builtin.h: Move two functions definitions to help.h.
hex.c slim down "git show-index"
http-backend.c http-backend: use end_url_with_slash()
http-fetch.c Fix two unused variable warnings in gcc 4.6
http-push.c http-push: refactor curl_easy_setup madness
http-walker.c http: make curl callbacks match contracts from curl header
http.c Handle http.* config variables pointing to files gracefully on Windows
http.h http: make curl callbacks match contracts from curl header
ident.c Merge branch 'rg/no-gecos-in-pwent'
imap-send.c sparse: Fix some "Using plain integer as NULL pointer" warnings
levenshtein.c Fix typos / spelling in comments
levenshtein.h Typofixes outside documentation area
list-objects.c Merge branch 'nd/struct-pathspec'
list-objects.h Merge branch 'lt/pack-object-memuse'
ll-merge.c ll-merge: simplify opts == NULL case
ll-merge.h merge-recursive --patience
lockfile.c Name make_*_path functions more accurately
log-tree.c Give commit message reencoding for output on MinGW a chance
log-tree.h Allow customizable commit decorations colors
mailmap.c mailmap: fix use of freed memory
mailmap.h mailmap.c: remove unused function
match-trees.c Make "subtree" part more orthogonal to the rest of merge-recursive.
merge-file.c sparse: Fix an "symbol 'merge_file' not decared" warning
merge-file.h sparse: Fix an "symbol 'merge_file' not decared" warning
merge-recursive.c Revert "Merge branch 'en/merge-recursive'"
merge-recursive.h Merge branch 'jk/merge-rename-ux'
name-hash.c Add case insensitivity support for directories when using git status
notes-cache.c notes.h/c: Propagate combine_notes_fn return value to add_note() and …
notes-cache.h introduce notes-cache interface
notes-merge.c index_fd(): turn write_object and format_check arguments into one flag
notes-merge.h git notes merge: Add another auto-resolving strategy: "cat_sort_uniq"
notes.c notes: refactor display notes default handling
notes.h notes: refactor display notes default handling
object.c read_sha1_file(): get rid of read_sha1_file_repl() madness
object.h object.h: Remove obsolete struct object_refs
pack-check.c sparse: Fix errors and silence warnings
pack-refs.c pack-refs: remove newly empty directories
pack-refs.h Move pack_refs() and friends into libgit
pack-revindex.c janitor: useless checks before free
pack-revindex.h discard revindex data when pack list changes
pack-write.c move encode_in_pack_object_header() to a better place
pack.h Merge branch 'sp/maint-dumb-http-pack-reidx' into maint
pager.c Make 'git var GIT_PAGER' always print the configured pager
parse-options.c Fix sparse warnings
parse-options.h Make <identifier> lowercase as per CodingGuidelines
patch-delta.c compat: helper for detecting unsigned overflow
patch-ids.c patch-ids: use the new generic "sha1_pos" function to lookup sha1
patch-ids.h Refactor patch-id filtering out of git-cherry and git-format-patch.
path.c Allow using UNC path for git repository
pkt-line.c sparse: Fix errors and silence warnings
pkt-line.h pkt-line: Add strbuf based functions
preload-index.c Convert ce_path_match() to use struct pathspec
pretty.c Merge branch 'jk/format-patch-am'
progress.c change throughput display units with fast links
progress.h nicer display of thin pack completion
quote.c quote.c: separate quoting and relative path generation
quote.h quote.h: simplify the inclusion
reachable.c Remove unused variables
reachable.h Move traversal of reachable objects into a separate library.
read-cache.c Merge branch 'ef/maint-win-verify-path' into next
reflog-walk.c Merge branch 'jk/maint-reflog-bottom' into maint
reflog-walk.h Introduce new pretty formats %g[sdD] for reflog information
refs.c Merge branch 'hv/submodule-find-ff-merge'
refs.h setup_revisions(): Allow walking history in a submodule
remote-curl.c http: make curl callbacks match contracts from curl header
remote.c Change "tracking branch" to "remote-tracking branch"
remote.h enums: omit trailing comma for portability
replace_object.c inline lookup_replace_object() calls
rerere.c Merge branch 'maint'
rerere.h rerere: libify rerere_clear() and rerere_gc()
resolve-undo.c Convert the users of for_each_string_list to for_each_string_list_ite…
resolve-undo.h build: make code "-Wpointer-arith" clean
revision.c Merge branch 'jc/notes-batch-removal'
revision.h Merge branch 'jk/format-patch-am'
run-command.c run-command: handle short writes and EINTR in die_child
run-command.h Enable threaded async procedures whenever pthreads is available
send-pack.h push: pass --progress down to git-pack-objects
server-info.c update-server-info: Shorten read_pack_info_file()
setup.c Merge branch 'da/git-prefix-everywhere' into next
sh-i18n--envsubst.c sh-18n: quell "unused variable" warning
sha1-array.c receive-pack: eliminate duplicate .have refs
sha1-array.h receive-pack: eliminate duplicate .have refs
sha1-lookup.c sha1-lookup: fix up the assertion message
sha1-lookup.h sha1-lookup: add new "sha1_pos" function to efficiently lookup sha1
sha1_file.c sha1_file: use the correct type (ssize_t, not size_t) for read-style …
sha1_name.c Merge branch 'jc/magic-pathspec'
shallow.c object.h: Add OBJECT_ARRAY_INIT macro and make use of it.
shell.c shell: add missing initialization of argv0_path
shortlog.h pretty: Respect --abbrev option
show-index.c Revert ab/i18n out of 'next'
sideband.c Smart push over HTTP: client side
sideband.h recv_sideband: Bands #2 and #3 always go to stderr
sigchain.c refactor signal handling for cleanup functions
sigchain.h refactor signal handling for cleanup functions
strbuf.c Merge branch 'ef/maint-strbuf-init'
strbuf.h strbuf: clarify assertion in strbuf_setlen()
streaming.c streaming: read loose objects incrementally
streaming.h streaming: a new API to read from the object store
string-list.c string_list_append: always set util pointer to NULL
string-list.h standardize brace placement in struct definitions
submodule.c Submodules: Don't parse .gitmodules when it contains, merge conflicts
submodule.h fetch/pull: Add the 'on-demand' value to the --recurse-submodules option
symlinks.c do not overwrite untracked symlinks
tag.c parse_tag_buffer(): do not prefixcmp() out of range
tag.h Add const to parse_{commit,tag}_buffer()
tar.h tar-tree: Introduce write_entry()
test-chmtime.c Typofixes outside documentation area
test-ctype.c Add is_regex_special()
test-date.c test-date: fix sscanf type conversion
test-delta.c Nicolas Pitre has a new email address
test-dump-cache-tree.c add test-dump-cache-tree in Makefile
test-genrandom.c test-genrandom: ensure stdout is set to _O_BINARY on Windows
test-index-version.c Add test-index-version
test-line-buffer.c vcs-svn: remove buffer_read_string
test-match-trees.c A new merge stragety 'subtree'.
test-mktemp.c Improve error messages when temporary file creation fails
test-obj-pool.c Add memory pool library
test-parse-options.c Make <identifier> lowercase as per CodingGuidelines
test-path-utils.c Name make_*_path functions more accurately
test-run-command.c tests: check error message from run_command
test-sha1.c Convert existing die(..., strerror(errno)) to die_errno() more tr portability test script fixes
test-sigchain.c t0005: use SIGTERM for sigchain test
test-string-pool.c Add string-specific memory pool
test-subprocess.c Remove unused variables
test-svn-fe.c vcs-svn: Check for errors from open()
test-treap.c treap: make treap_insert return inserted node
thread-utils.c Fix sparse warnings
thread-utils.h thread-utils.h: simplify the inclusion
trace.c Fix sparse warnings
transport-helper.c Remove unused variables
transport.c Merge branch 'maint'
transport.h refactor refs_from_alternate_cb to allow passing extra data
tree-diff.c Merge branch 'jk/diff-not-so-quick' into next
tree-walk.c pathspec: rename per-item field has_wildcard to use_wildcard
tree-walk.h grep: drop pathspec_matches() in favor of tree_entry_interesting()
tree.c Convert read_tree{,_recursive} to support struct pathspec
tree.h Convert read_tree{,_recursive} to support struct pathspec Makefile: allow building without perl
unpack-trees.c Merge branch 'jc/diff-index-quick-exit-early' into next
unpack-trees.h Merge branch 'jc/diff-index-quick-exit-early' into next
upload-pack.c Merge branch 'jk/maint-upload-pack-shallow' into maint
url.c Fix sparse warnings
url.h url: add str wrapper for end_url_with_slash()
usage.c Fix sparse warnings
userdiff.c Merge branch 'jk/combine-diff-binary-etc' into next
userdiff.h refactor get_textconv to not require diff_filespec
utf8.c strbuf: add fixed-length version of add_wrapped_text
utf8.h strbuf: add fixed-length version of add_wrapped_text
walker.c commit: Add commit_list prefix in two function names.
walker.h http: init and cleanup separately from http-walker wrap-for-bin: do not export an empty GIT_TEMPLATE_DIR
wrapper.c read_in_full: always report errors
write_or_die.c Convert existing die(..., strerror(errno)) to die_errno()
ws.c Make the tab width used for whitespace checks configurable
wt-status.c Merge branch 'ab/i18n-st'
wt-status.h Merge branch 'jn/status-translatable'
xdiff-interface.c add, merge, diff: do not use strcasecmp to compare config variable names
xdiff-interface.h Merge branch 'maint-1.7.0' into maint
zlib.c wrapper: give zlib wrappers their own translation unit



	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/gittutorial.txt to get started, then see
Documentation/everyday.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

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

Many Git online resources are accessible from
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 To subscribe
to the list, send an email with just "subscribe git" in the body to The mailing list archives are available at 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.
Something went wrong with that request. Please try again.