Go to file
Junio C Hamano dc4b4a61ba submodule--helper: do not call utf8_fprintf() unnecessarily
The helper function utf8_fprintf(fp, ...) has exactly the same
effect to the output stream fp as fprintf(fp, ...) does, and the
only difference is that its return value counts in display columns
consumed (assuming that the payload is encoded in UTF-8), as opposed
to number of bytes.

There is no reason to call it unless the caller cares about its
return value.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-06-28 14:27:10 -07:00
Documentation Git 2.10.3 2017-05-05 13:24:10 +09:00
block-sha1
…
builtin submodule--helper: do not call utf8_fprintf() unnecessarily 2017-06-28 14:27:10 -07:00
ci
…
compat Merge branch 'rs/compat-strdup' into maint 2016-09-19 13:51:42 -07:00
contrib Merge branch 'rs/cocci' into maint 2016-11-29 13:28:00 -08:00
ewah
…
git-gui Merge branch 'rs/git-gui-use-modern-git-merge-syntax' into maint 2016-10-11 14:20:37 -07:00
gitk-git
…
gitweb
…
mergetools
…
perl Merge branch 'mm/send-email-cc-cruft-after-address' into maint 2016-11-29 13:27:55 -08:00
po Merge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru 2016-10-16 20:11:41 +08:00
ppc
…
refs files_read_raw_ref: prevent infinite retry loops in general 2016-10-10 10:53:33 -07:00
t Merge branch 'nd/test-helpers' into maint 2016-11-29 13:28:00 -08:00
templates pre-receive.sample: mark it executable 2016-10-28 14:21:11 -07:00
vcs-svn Merge branch 'mr/vcs-svn-printf-ulong' into maint 2016-09-29 16:49:37 -07:00
xdiff Merge branch 'rs/xdiff-merge-overlapping-hunks-for-W-context' into maint 2016-09-29 16:49:39 -07:00
.gitattributes
…
.gitignore
…
.mailmap add David Turner's Two Sigma address 2016-09-26 17:46:44 -07:00
.travis.yml Merge branch 'ls/macos-update' into maint 2016-11-29 13:27:56 -08:00
COPYING
…
GIT-VERSION-GEN Git 2.10.3 2017-05-05 13:24:10 +09:00
INSTALL
…
LGPL-2.1
…
Makefile Merge branch 'ls/macos-update' into maint 2016-11-29 13:27:56 -08:00
README.md
…
RelNotes Git 2.8.5 2017-05-05 13:08:54 +09:00
abspath.c
…
aclocal.m4
…
advice.c
…
advice.h
…
alias.c
…
alloc.c
…
archive-tar.c Merge branch 'jk/big-and-future-archive-tar' 2016-08-12 09:47:37 -07:00
archive-zip.c
…
archive.c i18n: archive: mark errors for translation 2016-08-09 12:44:59 -07:00
archive.h
…
argv-array.c
…
argv-array.h
…
attr.c
…
attr.h
…
base85.c
…
bisect.c
…
bisect.h
…
blob.c
…
blob.h
…
branch.c create_branch: drop unused "head" parameter 2016-11-09 14:56:21 -08:00
branch.h create_branch: drop unused "head" parameter 2016-11-09 14:56:21 -08:00
builtin.h
…
bulk-checkin.c
…
bulk-checkin.h
…
bundle.c
…
bundle.h
…
cache-tree.c
…
cache-tree.h
…
cache.h Merge branch 'jk/fetch-quick-tag-following' into maint 2016-10-28 09:01:17 -07:00
check-builtins.sh
…
check-racy.c
…
check_bindir
…
color.c Merge branch 'jk/squelch-false-warning-from-gcc-o3' into maint 2016-09-19 13:51:41 -07:00
color.h
…
column.c
…
column.h
…
combine-diff.c
…
command-list.txt
…
commit-slab.h Merge branch 'vs/typofix' 2016-08-12 09:47:37 -07:00
commit.c Merge branch 'rs/copy-array' into maint 2016-10-11 14:18:32 -07:00
commit.h Merge branch 'rs/pull-signed-tag' 2016-08-19 15:34:14 -07:00
common-main.c common-main: stop munging argv[0] path 2016-11-29 11:01:48 -08:00
config.c i18n: simplify numeric error reporting 2016-08-24 08:47:20 -07:00
config.mak.in
…
config.mak.uname Merge branch 'ew/build-time-pager-tweaks' 2016-08-08 14:48:44 -07:00
configure.ac Merge branch 'dp/autoconf-curl-ssl' into maint 2016-10-28 09:01:13 -07:00
connect.c
…
connect.h
…
connected.c
…
connected.h
…
convert.c convert: Correct NNO tests and missing `LF will be replaced by CRLF` 2016-08-14 13:45:52 -07:00
convert.h
…
copy.c
…
credential-cache--daemon.c
…
credential-cache.c
…
credential-store.c
…
credential.c
…
credential.h
…
csum-file.c
…
csum-file.h
…
ctype.c
…
daemon.c Merge branch 'jk/daemon-path-ok-check-truncation' into maint 2016-11-29 13:27:56 -08:00
date.c
…
decorate.c
…
decorate.h
…
delta.h
…
diff-delta.c
…
diff-lib.c
…
diff-no-index.c
…
diff.c Merge branch 'tk/diffcore-delta-remove-unused' into maint 2016-11-29 13:28:03 -08:00
diff.h
…
diffcore-break.c Merge branch 'tk/diffcore-delta-remove-unused' into maint 2016-11-29 13:28:03 -08:00
diffcore-delta.c diffcore-delta: remove unused parameter to diffcore_count_changes() 2016-11-14 09:24:04 -08:00
diffcore-order.c
…
diffcore-pickaxe.c Merge branch 'js/regexec-buf' into maint 2016-09-29 16:49:45 -07:00
diffcore-rename.c Merge branch 'tk/diffcore-delta-remove-unused' into maint 2016-11-29 13:28:03 -08:00
diffcore.h Merge branch 'tk/diffcore-delta-remove-unused' into maint 2016-11-29 13:28:03 -08:00
dir-iterator.c
…
dir-iterator.h
…
dir.c Merge branch 'rs/use-strbuf-addbuf' into maint 2016-08-08 14:21:42 -07:00
dir.h
…
editor.c
…
entry.c
…
environment.c
…
exec_cmd.c common-main: stop munging argv[0] path 2016-11-29 11:01:48 -08:00
exec_cmd.h common-main: stop munging argv[0] path 2016-11-29 11:01:48 -08:00
fast-import.c
…
fetch-pack.c fetch-pack: do not reset in_vain on non-novel acks 2016-09-23 12:37:45 -07:00
fetch-pack.h
…
fmt-merge-msg.h
…
fsck.c
…
fsck.h
…
generate-cmdlist.sh
…
gettext.c
…
gettext.h
…
git-add--interactive.perl
…
git-archimport.perl
…
git-bisect.sh
…
git-compat-util.h Merge branch 'jk/common-main' into maint-2.10 2016-12-05 11:24:28 -08:00
git-cvsexportcommit.perl
…
git-cvsimport.perl
…
git-cvsserver.perl
…
git-difftool--helper.sh difftool: always honor fatal error exit codes 2016-08-15 15:24:05 -07:00
git-difftool.perl
…
git-filter-branch.sh
…
git-instaweb.sh
…
git-merge-octopus.sh git-merge-octopus: do not capitalize "octopus" 2016-09-08 12:17:10 -07:00
git-merge-one-file.sh
…
git-merge-resolve.sh
…
git-mergetool--lib.sh
…
git-mergetool.sh
…
git-p4.py Spelling fixes 2016-08-11 14:35:42 -07:00
git-parse-remote.sh
…
git-quiltimport.sh
…
git-rebase--am.sh
…
git-rebase--interactive.sh Merge branch 'rt/rebase-i-broken-insn-advise' into maint 2016-09-29 16:49:46 -07:00
git-rebase--merge.sh
…
git-rebase.sh
…
git-relink.perl
…
git-remote-testgit.sh
…
git-request-pull.sh
…
git-send-email.perl
…
git-sh-i18n.sh
…
git-sh-setup.sh git-sh-setup: be explicit where to dot-source git-sh-i18n from. 2016-10-30 16:13:49 -07:00
git-stash.sh i18n: git-stash: mark messages for translation 2016-08-10 10:50:18 -07:00
git-submodule.sh Merge branch 'sb/submodule-update-dot-branch' 2016-08-10 12:33:20 -07:00
git-svn.perl
…
git-web--browse.sh
…
git.c Merge branch 'jk/common-main' into maint-2.10 2016-12-05 11:24:28 -08:00
git.rc
…
gpg-interface.c Merge branch 'lt/gpg-show-long-key-in-signature-verification-maint' into lt/gpg-show-long-key-in-signature-verification 2016-08-16 15:04:13 -07:00
gpg-interface.h
…
graph.c Merge branch 'jk/graph-padding-fix' into maint 2016-10-11 14:19:03 -07:00
graph.h
…
grep.c Merge branch 'js/regexec-buf' into maint 2016-09-29 16:49:45 -07:00
grep.h Merge branch 'jc/grep-commandline-vs-configuration' into maint 2016-08-10 11:55:29 -07:00
hashmap.c
…
hashmap.h
…
help.c
…
help.h
…
hex.c hex: make wraparound of the index into ring-buffer explicit 2016-10-26 10:54:11 -07:00
http-backend.c Merge branch 'ew/http-backend-batch-headers' 2016-08-12 09:47:38 -07:00
http-fetch.c
…
http-push.c Merge branch 'jk/common-main' into maint 2016-09-08 21:35:51 -07:00
http-walker.c
…
http.c http: http.emptyauth should allow empty (not just NULL) usernames 2016-10-04 12:02:00 -07:00
http.h
…
ident.c Merge branch 'jk/ident-ai-canonname-could-be-null' into maint 2016-10-03 13:22:32 -07:00
imap-send.c Merge branch 'jc/cocci-xstrdup-or-null' into maint 2016-10-28 09:01:23 -07:00
iterator.h
…
khash.h
…
kwset.c
…
kwset.h
…
levenshtein.c
…
levenshtein.h
…
line-log.c
…
line-log.h
…
line-range.c
…
line-range.h
…
list-objects.c
…
list-objects.h
…
list.h
…
ll-merge.c
…
ll-merge.h
…
lockfile.c
…
lockfile.h mingw: ensure temporary file handles are not inherited by child processes 2016-08-23 09:09:55 -07:00
log-tree.c Merge branch 'nd/log-decorate-color-head-arrow' 2016-08-08 14:48:42 -07:00
log-tree.h
…
mailinfo.c mailinfo: unescape quoted-pair in header fields 2016-09-28 13:21:18 -07:00
mailinfo.h
…
mailmap.c cocci: refactor common patterns to use xstrdup_or_null() 2016-10-12 11:22:10 -07:00
mailmap.h
…
match-trees.c
…
merge-blobs.c
…
merge-blobs.h
…
merge-recursive.c use strbuf_add_unique_abbrev() for adding short hashes, part 3 2016-10-10 11:58:25 -07:00
merge-recursive.h
…
merge.c
…
mergesort.c
…
mergesort.h
…
mru.c
…
mru.h
…
name-hash.c
…
notes-cache.c
…
notes-cache.h
…
notes-merge.c
…
notes-merge.h
…
notes-utils.c
…
notes-utils.h
…
notes.c
…
notes.h
…
object.c
…
object.h
…
pack-bitmap-write.c
…
pack-bitmap.c
…
pack-bitmap.h
…
pack-check.c Merge branch 'jk/verify-packfile-gently' into maint 2016-10-11 14:21:36 -07:00
pack-objects.c
…
pack-objects.h
…
pack-revindex.c use COPY_ARRAY 2016-09-25 16:44:13 -07:00
pack-revindex.h
…
pack-write.c
…
pack.h
…
pager.c pager: move pager-specific setup into the build 2016-08-04 13:51:02 -07:00
parse-options-cb.c remove unnecessary NULL check before free(3) 2016-10-10 11:37:41 -07:00
parse-options.c
…
parse-options.h
…
patch-delta.c
…
patch-ids.c patch-ids: refuse to compute patch-id for merge commit 2016-09-12 13:45:01 -07:00
patch-ids.h rebase: avoid computing unnecessary patch IDs 2016-08-11 14:39:16 -07:00
path.c hex: make wraparound of the index into ring-buffer explicit 2016-10-26 10:54:11 -07:00
pathspec.c use COPY_ARRAY 2016-09-25 16:44:13 -07:00
pathspec.h Merge branch 'bw/pathspec-remove-unused-extern-decl' into maint 2016-09-29 16:49:34 -07:00
pkt-line.c introduce hex2chr() for converting two hexadecimal digits to a character 2016-09-07 10:42:46 -07:00
pkt-line.h
…
preload-index.c
…
pretty.c Merge branch 'rs/cocci' into maint 2016-10-28 09:01:23 -07:00
prio-queue.c
…
prio-queue.h
…
progress.c
…
progress.h
…
prompt.c
…
prompt.h
…
quote.c
…
quote.h
…
reachable.c
…
reachable.h
…
read-cache.c Merge branch 'tg/add-chmod+x-fix' into maint 2016-09-29 16:49:47 -07:00
ref-filter.c ref-filter: strip format option after a field name only once while parsing 2016-10-03 12:47:19 -07:00
ref-filter.h
…
reflog-walk.c
…
reflog-walk.h
…
refs.c cocci: refactor common patterns to use xstrdup_or_null() 2016-10-12 11:22:10 -07:00
refs.h
…
remote-curl.c
…
remote-testsvn.c
…
remote.c use strbuf_addstr() for adding constant strings to a strbuf, part 2 2016-09-15 12:23:38 -07:00
remote.h Merge branch 'jk/push-force-with-lease-creation' into maint 2016-09-08 21:35:53 -07:00
replace_object.c
…
rerere.c
…
rerere.h
…
resolve-undo.c
…
resolve-undo.h
…
revision.c Merge branch 'kw/patch-ids-optim' 2016-08-12 09:47:39 -07:00
revision.h
…
run-command.c Merge branch 'ab/hooks' 2016-08-19 15:34:16 -07:00
run-command.h
…
send-pack.c cocci: refactor common patterns to use xstrdup_or_null() 2016-10-12 11:22:10 -07:00
send-pack.h
…
sequencer.c i18n: fix typos for translation 2016-08-24 08:41:22 -07:00
sequencer.h
…
server-info.c
…
setup.c i18n: setup: mark error messages for translation 2016-08-09 12:44:59 -07:00
sh-i18n--envsubst.c
…
sha1-array.c
…
sha1-array.h
…
sha1-lookup.c
…
sha1-lookup.h
…
sha1_file.c Merge branch 'jk/fetch-quick-tag-following' into maint 2016-10-28 09:01:17 -07:00
sha1_name.c
…
shallow.c
…
shell.c Merge branch 'maint-2.8' into maint-2.9 2017-05-05 13:13:48 +09:00
shortlog.h
…
show-index.c
…
sideband.c Merge branch 'lf/recv-sideband-cleanup' into maint 2016-08-08 14:21:41 -07:00
sideband.h
…
sigchain.c
…
sigchain.h
…
split-index.c use COPY_ARRAY 2016-09-25 16:44:13 -07:00
split-index.h
…
strbuf.c Merge branch 'rs/strbuf-remove-fix' into maint 2016-09-29 16:49:35 -07:00
strbuf.h Merge branch 'rs/use-strbuf-addbuf' into maint 2016-08-08 14:21:42 -07:00
streaming.c streaming: make sure to notice corrupt object 2016-09-26 10:48:03 -07:00
streaming.h
…
string-list.c
…
string-list.h
…
submodule-config.c Merge branch 'sb/submodule-update-dot-branch' 2016-08-10 12:33:20 -07:00
submodule-config.h
…
submodule.c Merge branch 'rs/cocci' into maint 2016-10-28 09:01:23 -07:00
submodule.h
…
symlinks.c
…
tag.c
…
tag.h
…
tar.h
…
tempfile.c mingw: ensure temporary file handles are not inherited by child processes 2016-08-23 09:09:55 -07:00
tempfile.h mingw: ensure temporary file handles are not inherited by child processes 2016-08-23 09:09:55 -07:00
thread-utils.c
…
thread-utils.h
…
trace.c trace: do not fall back to stderr 2016-08-05 09:28:17 -07:00
trace.h
…
trailer.c cocci: refactor common patterns to use xstrdup_or_null() 2016-10-12 11:22:10 -07:00
trailer.h
…
transport-helper.c Spelling fixes 2016-08-11 14:35:42 -07:00
transport.c Merge branch 'rs/use-strbuf-add-unique-abbrev' into maint 2016-09-08 21:36:00 -07:00
transport.h
…
tree-diff.c
…
tree-walk.c
…
tree-walk.h
…
tree.c
…
tree.h
…
unicode_width.h
…
unimplemented.sh
…
unix-socket.c
…
unix-socket.h
…
unpack-trees.c Merge branch 'rs/unpack-trees-reduce-file-scope-global' into maint 2016-09-29 16:49:36 -07:00
unpack-trees.h
…
update_unicode.sh
…
upload-pack.c Merge branch 'jk/common-main' into maint 2016-09-08 21:35:51 -07:00
url.c introduce hex2chr() for converting two hexadecimal digits to a character 2016-09-07 10:42:46 -07:00
url.h
…
urlmatch.c
…
urlmatch.h
…
usage.c error_errno: use constant return similar to error() 2016-08-31 11:11:54 -07:00
userdiff.c
…
userdiff.h
…
utf8.c
…
utf8.h
…
varint.c
…
varint.h
…
version.c
…
version.h
…
versioncmp.c
…
walker.c
…
walker.h
…
wildmatch.c
…
wildmatch.h
…
worktree.c worktree: allow the main brach of a bare repository to be checked out 2016-10-14 09:58:58 -07:00
worktree.h
…
wrap-for-bin.sh
…
wrapper.c
…
write_or_die.c write_or_die: drop write_or_whine_pipe() 2016-08-05 09:28:17 -07:00
ws.c
…
wt-status.c use strbuf_add_unique_abbrev() for adding short hashes, part 3 2016-10-10 11:58:25 -07:00
wt-status.h
…
xdiff-interface.c Merge branch 'js/regexec-buf' into maint 2016-09-29 16:49:45 -07:00
xdiff-interface.h
…
zlib.c
…

README.md

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 http://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 http://news.gmane.org/gmane.comp.version-control.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