Go to file
Junio C Hamano fe72e268a1 Merge branch 'ps/odb-generic-corrupt-objects' into next
The object database (odb) API has been refactored to distinguish
between missing objects and corrupt ones by returning more
descriptive error statuses.  Both the packed and loose backends now
faithfully propagate error details using a generic strbuf error
mechanism, removing backend-specific leakage from central lookup
paths.

* ps/odb-generic-corrupt-objects:
  odb: handle `OBJECT_INFO_DIE_IF_CORRUPT` generically
  odb/source: allow `read_object_info()` to bubble up error messages
  odb/source: let callers discern missing and corrupt objects
  odb/source: introduce error status when reading objects
  odb/source-packed: flag known-bad objects as corrupt and not missing
2026-08-23 18:03:52 -07:00
.github Merge branch 'jk/ci-static-analysis-image-bump' 2026-08-05 11:10:51 -07:00
Documentation Sync with 'master' 2026-08-20 07:32:09 -07:00
bin-wrappers
block-sha1
builtin Merge branch 'ps/odb-generic-corrupt-objects' into next 2026-08-23 18:03:52 -07:00
ci Merge branch 'ps/reftable-hardening' 2026-07-19 10:42:15 -07:00
compat Merge branch 'ps/writev' 2026-08-18 09:31:36 -07:00
compiler-tricks
contrib Merge branch 'jc/complete-checkout' into next 2026-08-19 11:30:37 -07:00
ewah
git-gui Merge branch 'master' of https://github.com/j6t/git-gui 2026-07-16 10:48:52 -07:00
gitk-git Merge branch 'master' of https://github.com/j6t/gitk 2026-07-16 10:47:40 -07:00
gitweb gitweb: shorten index hashes with trailing file modes 2026-07-17 09:12:59 -07:00
mergetools
negotiator
odb Merge branch 'ps/odb-generic-corrupt-objects' into next 2026-08-23 18:03:52 -07:00
oss-fuzz Merge branch 'js/pack-objects-delta-size-t' into next 2026-08-17 09:43:11 -07:00
perl
po Merge branch 'spanish_pr_bis' of github.com:basuradeluis/gitkbis 2026-07-16 10:53:01 +02:00
refs Merge branch 'ch/chdir-notify-drop-name' into next 2026-08-18 09:50:14 -07:00
reftable Merge branch 'js/coverity-unchecked-returns-fix' into next 2026-08-17 09:43:10 -07:00
sha1
sha1collisiondetection@855827c583
sha1dc
sha256
src rust: discard hash context when finished 2026-07-19 16:26:09 -07:00
subprojects
t Merge branch 'ps/odb-generic-corrupt-objects' into next 2026-08-23 18:03:52 -07:00
templates
tools hash: convert remaining direct function calls 2026-07-07 21:56:00 -07:00
trace2 hash: use git_hash_init() consistently 2026-07-07 21:56:00 -07:00
xdiff
.b4-config
.b4-cover-template b4: include change-id in cover template 2026-07-10 09:49:47 -07:00
.cirrus.yml
.clang-format
.editorconfig
.gitattributes
.gitignore
.gitlab-ci.yml Merge branch 'jk/ci-static-analysis-image-bump' 2026-08-05 11:10:51 -07:00
.gitmodules
.mailmap mailmap: map Elijah Newren's current and previous work addresses 2026-08-12 13:16:46 -07:00
.tsan-suppressions
CODE_OF_CONDUCT.md
COPYING
Cargo.toml
GIT-BUILD-OPTIONS.in
GIT-VERSION-FILE.in
GIT-VERSION-GEN Start Git 2.56 cycle 2026-07-06 15:50:25 -07:00
INSTALL
LGPL-2.1
Makefile Merge branch 'ps/writev' 2026-08-18 09:31:36 -07:00
README.md
RelNotes Start Git 2.56 cycle 2026-07-06 15:50:25 -07:00
SECURITY.md
abspath.c
abspath.h
aclocal.m4
add-interactive.c
add-interactive.h
add-patch.c
add-patch.h
advice.c Revert "Merge branch 'hn/history-squash' into next" 2026-07-29 08:48:02 -07:00
advice.h Revert "Merge branch 'hn/history-squash' into next" 2026-07-29 08:48:02 -07:00
alias.c
alias.h
alloc.c
alloc.h
apply.c Merge branch 'ty/migrate-excludes-file' 2026-07-30 10:32:03 -07:00
apply.h
archive-tar.c odb/streaming: unify function names to create new streams 2026-08-05 09:42:50 -07:00
archive-zip.c Merge branch 'js/pack-objects-delta-size-t' into next 2026-08-17 09:43:11 -07:00
archive.c
archive.h
attr.c
attr.h
banned.h
base85.c
base85.h
bisect.c Merge branch 'js/coverity-unchecked-returns-fix' into next 2026-08-17 09:43:10 -07:00
bisect.h
blame.c
blame.h
blob.c
blob.h
bloom.c Merge branch 'jk/ci-static-analysis-image-bump' 2026-08-05 11:10:51 -07:00
bloom.h
branch.c Merge branch 'rs/branch-delete-bisect-warning' 2026-08-05 11:10:51 -07:00
branch.h branch: report active bisect run when rejecting delete 2026-07-25 09:22:03 -07:00
build.rs
builtin.h
bundle-uri.c Merge branch 'ps/copy-wo-the-repository' 2026-07-27 09:09:00 -07:00
bundle-uri.h
bundle.c use repo_hold_lock_file_for_update{,_mode,_timeout}() with custom repos 2026-07-14 12:54:25 -07:00
bundle.h
cache-tree.c Merge branch 'jt/receive-pack-use-odb-transactions' 2026-07-22 10:30:53 -07:00
cache-tree.h
cbtree.c
cbtree.h
chdir-notify.c chdir-notify.h: Removed unused param 'name' 2026-08-14 15:08:35 -07:00
chdir-notify.h chdir-notify.h: Removed unused param 'name' 2026-08-14 15:08:35 -07:00
checkout.c
checkout.h
chunk-format.c
chunk-format.h
color.c
color.h
column.c
column.h
combine-diff.c Merge branch 'ty/migrate-trust-executable-bit' 2026-07-30 10:32:02 -07:00
command-list.txt
commit-graph.c Merge branch 'rs/tempfile-wo-the-repository' 2026-07-30 10:32:02 -07:00
commit-graph.h
commit-reach.c Merge branch 'kk/merge-base-exhaustion' into next 2026-08-15 09:22:17 -07:00
commit-reach.h
commit-slab-decl.h
commit-slab-impl.h
commit-slab.h
commit.c Merge branch 'kk/prio-queue-get-put-fusion' 2026-07-13 08:27:27 -07:00
commit.h
common-exit.c
common-init.c setup: split up concerns of `setup_git_env_internal()` 2026-07-07 10:49:40 -07:00
common-init.h
common-main.c
config.c Merge branch 'js/pack-objects-delta-size-t' into next 2026-08-17 09:43:11 -07:00
config.h pack-objects: widen delta-cache accounting to `size_t` 2026-08-13 09:42:02 -07:00
config.mak.dev
config.mak.in
config.mak.uname compat/posix: introduce writev(3p) wrapper 2026-08-07 08:57:25 -07:00
configure.ac
connect.c Merge branch 'ps/cat-file-remote-object-info' 2026-07-30 10:32:04 -07:00
connect.h connect: make write_fetch_command_and_capabilities() more generic 2026-07-24 08:46:59 -07:00
connected.c
connected.h
convert.c
convert.h
copy.c copy: drop dependency on `the_repository` 2026-07-16 14:10:08 -07:00
copy.h copy: drop dependency on `the_repository` 2026-07-16 14:10:08 -07:00
credential.c
credential.h
csum-file.c Merge branch 'jk/hash-algo-leak-fixes' 2026-07-16 23:05:47 -07:00
csum-file.h Merge branch 'jk/hash-algo-leak-fixes' 2026-07-16 23:05:47 -07:00
ctype.c
daemon.c
date.c
date.h
decorate.c
decorate.h
delta-islands.c
delta-islands.h
delta.h delta: widen `create_delta()` and `diff_delta()` to `size_t` 2026-08-13 09:42:02 -07:00
diagnose.c
diagnose.h
diff-delta.c delta: widen `create_delta()` and `diff_delta()` to `size_t` 2026-08-13 09:42:02 -07:00
diff-lib.c Merge branch 'jk/diff-relative-cached-unmerged-more' 2026-08-07 14:48:00 -07:00
diff-merges.c
diff-merges.h
diff-no-index.c
diff.c Merge branch 'en/diff-l-opt-help' into next 2026-08-17 09:43:12 -07:00
diff.h
diffcore-break.c diffcore-break: guard against NULLed queue entries in merge loop 2026-07-10 08:13:54 -07:00
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore-rotate.c
diffcore.h
dir-iterator.c
dir-iterator.h
dir.c Merge branch 'ty/migrate-excludes-file' 2026-07-30 10:32:03 -07:00
dir.h
editor.c environment: move editor_program into repo_config_values 2026-07-14 07:30:23 -07:00
editor.h
entry.c Merge branch 'ty/migrate-trust-executable-bit' 2026-07-30 10:32:02 -07:00
entry.h
environment.c Merge branch 'ty/migrate-excludes-file' 2026-07-30 10:32:03 -07:00
environment.h Merge branch 'ty/migrate-excludes-file' 2026-07-30 10:32:03 -07:00
exec-cmd.c
exec-cmd.h
fetch-negotiator.c
fetch-negotiator.h
fetch-object-info.c fetch-object-info: parse type from server response 2026-08-07 18:50:08 -07:00
fetch-object-info.h fetch-object-info: parse type from server response 2026-08-07 18:50:08 -07:00
fetch-pack.c Merge branch 'tn/packfile-uri-concurrency' 2026-08-15 09:20:27 -07:00
fetch-pack.h Revert "Merge branch 'ps/cat-file-remote-object-info' into next" 2026-07-14 14:10:33 -07:00
fmt-merge-msg.c
fmt-merge-msg.h
for-each-ref.h
fsck.c
fsck.h
fsmonitor--daemon.h
fsmonitor-ipc.c
fsmonitor-ipc.h
fsmonitor-ll.h
fsmonitor-path-utils.h
fsmonitor-settings.c
fsmonitor-settings.h
fsmonitor.c
fsmonitor.h
gettext.c
gettext.h
git-archimport.perl
git-compat-util.h environment: move has_symlinks into repo_config_values 2026-07-20 07:37:05 -07:00
git-curl-compat.h
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
git-filter-branch.sh
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-quiltimport.sh
git-request-pull.sh
git-send-email.perl send-email: clarify missing subject error 2026-08-10 14:07:02 -07:00
git-sh-i18n.sh
git-sh-setup.sh
git-submodule.sh
git-svn.perl
git-web--browse.sh
git-zlib.c git-zlib: widen `git_deflate_bound()` to `size_t` 2026-08-13 09:42:03 -07:00
git-zlib.h git-zlib: widen `git_deflate_bound()` to `size_t` 2026-08-13 09:42:03 -07:00
git.c git: avoid segfault on "git --shallow-file" without a value 2026-08-11 12:17:14 -07:00
git.rc.in
gpg-interface.c
gpg-interface.h
graph.c graph: add --[no-]graph-indent and log.graphIndent 2026-07-14 07:32:51 -07:00
graph.h graph: add a 2 commit buffer for lookahead 2026-07-14 07:32:51 -07:00
grep.c
grep.h
hash-lookup.c
hash-lookup.h
hash.c hash: check ctx->active flag in all wrapper functions 2026-07-07 21:56:00 -07:00
hash.h hash: make git_hash_discard() idempotent 2026-07-07 21:56:00 -07:00
hashmap.c
hashmap.h
help.c
help.h
hex-ll.c
hex-ll.h
hex.c
hex.h
hook.c
hook.h
http-backend.c
http-fetch.c http: accept HTTP 416 for complete partial packs 2026-07-27 12:57:20 -07:00
http-push.c Merge branch 'js/pack-objects-delta-size-t' into next 2026-08-17 09:43:11 -07:00
http-walker.c http: accept HTTP 416 for complete partial packs 2026-07-27 12:57:20 -07:00
http.c Merge branch 'js/coverity-unchecked-returns-fix' into next 2026-08-17 09:43:10 -07:00
http.h Merge branch 'jk/hash-algo-leak-fixes' 2026-07-16 23:05:47 -07:00
ident.c
ident.h
imap-send.c
iterator.h
json-writer.c
json-writer.h
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
line-log.c Merge branch 'jk/bloom-leak-fixes' 2026-07-15 13:24:19 -07:00
line-log.h
line-range.c
line-range.h
linear-assignment.c
linear-assignment.h
list-objects-filter-options.c
list-objects-filter-options.h
list-objects-filter.c list-objects-filter: add list_objects_filter__filter_oidset() 2026-08-13 13:34:49 -07:00
list-objects-filter.h list-objects-filter: add list_objects_filter__filter_oidset() 2026-08-13 13:34:49 -07:00
list-objects.c
list-objects.h
list.h
lockfile.c lockfile: add repo_hold_lock_file_for_update{,_timeout}{,_mode}() 2026-07-14 12:54:25 -07:00
lockfile.h lockfile: add repo_hold_lock_file_for_update{,_timeout}{,_mode}() 2026-07-14 12:54:25 -07:00
log-tree.c
log-tree.h
loose.c Merge branch 'ps/odb-make-creation-pluggable' 2026-08-20 07:30:52 -07:00
loose.h setup: detangle loading of loose object maps 2026-08-06 21:24:25 -07:00
ls-refs.c
ls-refs.h
mailinfo.c
mailinfo.h
mailmap.c
mailmap.h
match-trees.c
match-trees.h
mem-pool.c
mem-pool.h
merge-blobs.c
merge-blobs.h
merge-ll.c add: introduce '--resolved' option 2026-07-31 08:52:16 -07:00
merge-ll.h add: introduce '--resolved' option 2026-07-31 08:52:16 -07:00
merge-ort-wrappers.c
merge-ort-wrappers.h
merge-ort.c
merge-ort.h
merge.c
merge.h
mergesort.h
meson.build Merge branch 'ps/writev' 2026-08-18 09:31:36 -07:00
meson_options.txt Merge branch 'ps/reftable-hardening' 2026-07-19 10:42:15 -07:00
midx-write.c Merge branch 'rs/tempfile-wo-the-repository' 2026-07-30 10:32:02 -07:00
midx.c odb/source-packed: flag known-bad objects as corrupt and not missing 2026-08-19 10:23:02 -07:00
midx.h odb/source-packed: flag known-bad objects as corrupt and not missing 2026-08-19 10:23:02 -07:00
name-hash.c
name-hash.h
notes-cache.c
notes-cache.h
notes-merge.c
notes-merge.h
notes-utils.c
notes-utils.h
notes.c
notes.h
object-file-convert.c
object-file-convert.h
object-file.c Merge branch 'ps/odb-streams' into next 2026-08-15 09:22:16 -07:00
object-file.h odb/streaming: rename `struct odb_read_stream` 2026-08-05 09:42:50 -07:00
object-name.c Merge branch 'sk/object-name-use-after-free' into next 2026-08-20 07:32:01 -07:00
object-name.h
object.c odb/streaming: unify function names to create new streams 2026-08-05 09:42:50 -07:00
object.h
odb.c Merge branch 'ps/odb-generic-corrupt-objects' into next 2026-08-23 18:03:52 -07:00
odb.h Merge branch 'ps/odb-generic-corrupt-objects' into next 2026-08-23 18:03:52 -07:00
oid-array.c
oid-array.h
oidmap.c
oidmap.h
oidset.c
oidset.h
oidtree.c
oidtree.h
pack-bitmap-write.c Merge branch 'kk/prio-queue-get-put-fusion' 2026-07-13 08:27:27 -07:00
pack-bitmap.c Merge branch 'dl/pack-bitmap-position-zero' 2026-08-07 14:48:01 -07:00
pack-bitmap.h odb: introduce object filters to `odb_for_each_object()` 2026-07-15 07:19:16 -07:00
pack-check.c Merge branch 'js/pack-objects-delta-size-t' into next 2026-08-17 09:43:11 -07:00
pack-mtimes.c
pack-mtimes.h
pack-objects.c
pack-objects.h
pack-refs.c
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c hash: use git_hash_init() consistently 2026-07-07 21:56:00 -07:00
pack.h
packfile-list.c packfile: fix perf regression with many packs 2026-08-13 09:45:46 -07:00
packfile-list.h packfile: fix perf regression with many packs 2026-08-13 09:45:46 -07:00
packfile.c Merge branch 'ps/odb-generic-corrupt-objects' into next 2026-08-23 18:03:52 -07:00
packfile.h Merge branch 'ps/odb-generic-corrupt-objects' into next 2026-08-23 18:03:52 -07:00
pager.c environment: move pager_program into repo_config_values 2026-07-14 07:30:23 -07:00
pager.h
parallel-checkout.c
parallel-checkout.h
parse-options-cb.c
parse-options.c parse-options: introduce OPT_HIDDEN_GROUP 2026-08-11 07:33:16 -07:00
parse-options.h parse-options: introduce OPT_HIDDEN_GROUP 2026-08-11 07:33:16 -07:00
parse.c pack-objects: widen delta-cache accounting to `size_t` 2026-08-13 09:42:02 -07:00
parse.h pack-objects: widen delta-cache accounting to `size_t` 2026-08-13 09:42:02 -07:00
patch-delta.c
patch-ids.c
patch-ids.h
path-walk.c Merge branch 'kk/prio-queue-get-put-fusion' 2026-07-13 08:27:27 -07:00
path-walk.h
path.c
path.h Merge branch 'jk/repo-info-path-keys' 2026-07-06 15:50:23 -07:00
pathspec.c pathspec: use match for sparse-index expansion checks 2026-07-21 10:33:14 -07:00
pathspec.h
pkt-line.c
pkt-line.h
preload-index.c
preload-index.h
pretty.c
pretty.h
prio-queue.c
prio-queue.h
progress.c
progress.h
promisor-remote.c
promisor-remote.h
prompt.c environment: move askpass_program into repo_config_values 2026-07-14 07:30:23 -07:00
prompt.h
protocol-caps.c protocol-caps: add type support to object-info 2026-08-07 18:50:08 -07:00
protocol-caps.h
protocol.c
protocol.h
prune-packed.c
prune-packed.h
pseudo-merge.c
pseudo-merge.h
quote.c
quote.h
range-diff.c
range-diff.h
reachable.c Merge branch 'ps/refs-wo-the-repository' 2026-07-27 09:08:59 -07:00
reachable.h
read-cache-ll.h read-cache: add remove_file_from_index_with_flags() 2026-07-31 08:52:16 -07:00
read-cache.c Merge branch 'jc/add-resolved' 2026-08-15 09:20:27 -07:00
read-cache.h environment: move has_symlinks into repo_config_values 2026-07-20 07:37:05 -07:00
rebase-interactive.c
rebase-interactive.h
rebase.c
rebase.h
ref-filter.c branch: add --forked filter for --list mode 2026-08-05 10:08:27 -07:00
ref-filter.h branch: add --forked filter for --list mode 2026-08-05 10:08:27 -07:00
reflog-walk.c
reflog-walk.h
reflog.c
reflog.h
refs.c refs: remove remaining uses of `the_repository` 2026-07-16 07:40:22 -07:00
refs.h refs: remove remaining uses of `the_repository` 2026-07-16 07:40:22 -07:00
refspec.c refspec: stop depending on `the_repository` 2026-07-16 13:58:25 -07:00
refspec.h refspec: stop depending on `the_repository` 2026-07-16 13:58:25 -07:00
remote-curl.c remote-curl: simplify passing of push specs 2026-07-15 14:13:47 -07:00
remote.c Merge branch 'en/submodule-insteadof-remote-match' 2026-08-03 09:31:30 -07:00
remote.h remote: find tracking branches for URL push destinations 2026-07-22 11:29:49 -07:00
repack-cruft.c
repack-filtered.c builtin/repack: enumerate promisor blobs for --drop-filtered 2026-08-13 13:34:49 -07:00
repack-geometry.c
repack-midx.c Merge branch 'rs/tempfile-wo-the-repository' 2026-07-30 10:32:02 -07:00
repack-promisor.c repack-promisor: allow excluding objects from the rebuilt promisor pack 2026-08-13 13:34:49 -07:00
repack.c
repack.h builtin/repack: enumerate promisor blobs for --drop-filtered 2026-08-13 13:34:49 -07:00
replace-object.c
replace-object.h
replay.c Revert "Merge branch 'tc/replay-linearize' into next" 2026-07-28 11:26:59 -07:00
replay.h Revert "Merge branch 'tc/replay-linearize' into next" 2026-07-28 11:26:59 -07:00
repo-settings.c
repo-settings.h
repository.c Merge branch 'ps/odb-make-creation-pluggable' 2026-08-20 07:30:52 -07:00
repository.h Merge branch 'ty/migrate-excludes-file' 2026-07-30 10:32:03 -07:00
rerere.c Merge branch 'jc/add-resolved' 2026-08-15 09:20:27 -07:00
rerere.h
reset.c
reset.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'mm/revision-pure-get-commit-action' 2026-08-07 14:48:00 -07:00
revision.h graph: add --[no-]graph-indent and log.graphIndent 2026-07-14 07:32:51 -07:00
run-command.c
run-command.h
sane-ctype.h
scalar.c
send-pack.c
send-pack.h
sequencer.c Merge branch 'en/sequencer-lose-pretty-given' into next 2026-08-17 09:43:11 -07:00
sequencer.h Revert "Merge branch 'hn/history-squash' into next" 2026-07-29 08:48:02 -07:00
serve.c Merge branch 'en/serve-promisor-remote-fix' into next 2026-08-17 09:43:12 -07:00
serve.h
server-info.c
server-info.h
setup.c Merge branch 'ps/odb-make-creation-pluggable' 2026-08-20 07:30:52 -07:00
setup.h setup: defer object database creation 2026-08-06 21:24:25 -07:00
sh-i18n--envsubst.c
sha1dc_git.c
sha1dc_git.h
shallow.c Merge branch 'js/coverity-fixes-null-safety' 2026-07-19 10:42:20 -07:00
shallow.h setup: unify setup of shallow file 2026-07-07 10:49:40 -07:00
shared.mak
shell.c
shortlog.h
sideband.c Merge branch 'ps/writev' 2026-08-18 09:31:36 -07:00
sideband.h
sigchain.c
sigchain.h
simple-ipc.h
sparse-index.c
sparse-index.h
split-index.c
split-index.h
stable-qsort.c
statinfo.c
statinfo.h
strbuf.c strbuf: avoid redundant reset in strbuf_getwholeline() 2026-07-14 09:35:02 -07:00
strbuf.h
string-list.c
string-list.h
strmap.c
strmap.h
strvec.c
strvec.h
sub-process.c
sub-process.h
submodule-config.c
submodule-config.h
submodule.c Merge branch 'ps/refs-wo-the-repository' 2026-07-27 09:08:59 -07:00
submodule.h
symlinks.c
symlinks.h
tag.c
tag.h
tar.h
tempfile.c tempfile: stop using the_repository 2026-07-14 12:54:25 -07:00
tempfile.h tempfile: stop using the_repository 2026-07-14 12:54:25 -07:00
thread-utils.c
thread-utils.h
tmp-objdir.c chdir-notify.h: Removed unused param 'name' 2026-08-14 15:08:35 -07:00
tmp-objdir.h
trace.c setup: move prefix into repository 2026-07-07 10:49:40 -07:00
trace.h
trace2.c
trace2.h
trailer.c
trailer.h
transport-helper.c Merge branch 'js/coverity-unchecked-returns-fix' into next 2026-08-17 09:43:10 -07:00
transport-internal.h transport: drop remote object-info fields from transport struct 2026-08-07 18:50:08 -07:00
transport.c Merge branch 'ps/cat-file-remote-object-info-type' into next 2026-08-15 09:22:15 -07:00
transport.h transport: drop remote object-info fields from transport struct 2026-08-07 18:50:08 -07:00
tree-diff.c
tree-walk.c
tree-walk.h
tree.c
tree.h
unicode-width.h
unimplemented.sh
unix-socket.c
unix-socket.h
unix-stream-server.c
unix-stream-server.h
unpack-trees.c Merge branch 'ty/migrate-ignorecase' 2026-07-19 10:42:19 -07:00
unpack-trees.h
upload-pack.c
upload-pack.h
url.c
url.h
urlmatch.c
urlmatch.h
usage.c parse-options: exit 0 on -h 2026-07-07 17:48:57 -07:00
userdiff.c userdiff: add support for Swift 2026-07-23 07:14:34 -07:00
userdiff.h
utf8.c
utf8.h
varint.c
varint.h
version-def.h.in
version.c
version.h
versioncmp.c
versioncmp.h
walker.c
walker.h
wildmatch.c
wildmatch.h
worktree.c worktree: pass repository to public functions 2026-07-16 07:40:22 -07:00
worktree.h worktree: pass repository to public functions 2026-07-16 07:40:22 -07:00
wrapper.c wrapper: properly handle MAX_IO_SIZE in writev(3p) 2026-08-07 08:57:25 -07:00
wrapper.h wrapper: properly handle MAX_IO_SIZE in writev(3p) 2026-08-07 08:57:25 -07:00
write-or-die.c wrapper: introduce writev(3p) wrappers 2026-08-07 08:57:25 -07:00
write-or-die.h wrapper: introduce writev(3p) wrappers 2026-08-07 08:57:25 -07:00
ws.c
ws.h
wt-status.c wt-status: avoid repeated insertion for untracked paths 2026-07-19 16:21:33 -07:00
wt-status.h
xdiff-interface.c
xdiff-interface.h

README.md

GitHub build status GitLab build status

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.adoc to get started, then see Documentation/giteveryday.adoc for a useful minimum set of commands, and Documentation/git-<commandname>.adoc 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.adoc (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 and Documentation/CodingGuidelines).

Those wishing to help with error message, usage and informational message string translations (localization l10) should see po/README.md (a po file is a Portable Object file that holds the translations).

To subscribe to the list, send an email to git+subscribe@vger.kernel.org (see https://subspace.kernel.org/subscribing.html for details). The mailing list archives are available at https://lore.kernel.org/git/, https://marc.info/?l=git and other archival sites.

Issues which are security relevant should be disclosed privately to the Git Security mailing list git-security@googlegroups.com.

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