[Skip to content](https://github.com/git/git/tree/HEAD/Documentation/howto#start-of-content)
## Navigation Menu
Toggle navigation
[ ](https://github.com/)
[ Sign in ](https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fgit%2Fgit%2Ftree%2FHEAD%2FDocumentation%2Fhowto)
Appearance settings
  * Platform
    * AI CODE CREATION
      * [ GitHub CopilotWrite better code with AI ](https://github.com/features/copilot)
      * [ GitHub SparkBuild and deploy intelligent apps ](https://github.com/features/spark)
      * [ GitHub ModelsManage and compare prompts ](https://github.com/features/models)
      * [ MCP RegistryNewIntegrate external tools ](https://github.com/mcp)
    * DEVELOPER WORKFLOWS
      * [ ActionsAutomate any workflow ](https://github.com/features/actions)
      * [ CodespacesInstant dev environments ](https://github.com/features/codespaces)
      * [ IssuesPlan and track work ](https://github.com/features/issues)
      * [ Code ReviewManage code changes ](https://github.com/features/code-review)
    * APPLICATION SECURITY
      * [ GitHub Advanced SecurityFind and fix vulnerabilities ](https://github.com/security/advanced-security)
      * [ Code securitySecure your code as you build ](https://github.com/security/advanced-security/code-security)
      * [ Secret protectionStop leaks before they start ](https://github.com/security/advanced-security/secret-protection)
    * EXPLORE
      * [Why GitHub](https://github.com/why-github)
      * [Documentation](https://docs.github.com)
      * [Blog](https://github.blog)
      * [Changelog](https://github.blog/changelog)
      * [Marketplace](https://github.com/marketplace)
[View all features](https://github.com/features)
  * Solutions
    * BY COMPANY SIZE
      * [Enterprises](https://github.com/enterprise)
      * [Small and medium teams](https://github.com/team)
      * [Startups](https://github.com/enterprise/startups)
      * [Nonprofits](https://github.com/solutions/industry/nonprofits)
    * BY USE CASE
      * [App Modernization](https://github.com/solutions/use-case/app-modernization)
      * [DevSecOps](https://github.com/solutions/use-case/devsecops)
      * [DevOps](https://github.com/solutions/use-case/devops)
      * [CI/CD](https://github.com/solutions/use-case/ci-cd)
      * [View all use cases](https://github.com/solutions/use-case)
    * BY INDUSTRY
      * [Healthcare](https://github.com/solutions/industry/healthcare)
      * [Financial services](https://github.com/solutions/industry/financial-services)
      * [Manufacturing](https://github.com/solutions/industry/manufacturing)
      * [Government](https://github.com/solutions/industry/government)
      * [View all industries](https://github.com/solutions/industry)
[View all solutions](https://github.com/solutions)
  * Resources
    * EXPLORE BY TOPIC
      * [AI](https://github.com/resources/articles?topic=ai)
      * [Software Development](https://github.com/resources/articles?topic=software-development)
      * [DevOps](https://github.com/resources/articles?topic=devops)
      * [Security](https://github.com/resources/articles?topic=security)
      * [View all topics](https://github.com/resources/articles)
    * EXPLORE BY TYPE
      * [Customer stories](https://github.com/customer-stories)
      * [Events & webinars](https://github.com/resources/events)
      * [Ebooks & reports](https://github.com/resources/whitepapers)
      * [Business insights](https://github.com/solutions/executive-insights)
      * [GitHub Skills](https://skills.github.com)
    * SUPPORT & SERVICES
      * [Documentation](https://docs.github.com)
      * [Customer support](https://support.github.com)
      * [Community forum](https://github.com/orgs/community/discussions)
      * [Trust center](https://github.com/trust-center)
      * [Partners](https://github.com/partners)
[View all resources](https://github.com/resources)
  * Open Source
    * COMMUNITY
      * [ GitHub SponsorsFund open source developers ](https://github.com/sponsors)
    * PROGRAMS
      * [Security Lab](https://securitylab.github.com)
      * [Maintainer Community](https://maintainers.github.com)
      * [Accelerator](https://github.com/accelerator)
      * [Archive Program](https://archiveprogram.github.com)
    * REPOSITORIES
      * [Topics](https://github.com/topics)
      * [Trending](https://github.com/trending)
      * [Collections](https://github.com/collections)
  * Enterprise
    * ENTERPRISE SOLUTIONS
      * [ Enterprise platformAI-powered developer platform ](https://github.com/enterprise)
    * AVAILABLE ADD-ONS
      * [ GitHub Advanced SecurityEnterprise-grade security features ](https://github.com/security/advanced-security)
      * [ Copilot for BusinessEnterprise-grade AI features ](https://github.com/features/copilot/copilot-business)
      * [ Premium SupportEnterprise-grade 24/7 support ](https://github.com/premium-support)
  * [Pricing](https://github.com/pricing)


Search or jump to...
# Search code, repositories, users, issues, pull requests...
Search
Clear
[Search syntax tips](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax)
#  Provide feedback
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel  Submit feedback
#  Saved searches
## Use saved searches to filter your results more quickly
Name
Query
To see all available qualifiers, see our [documentation](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax).
Cancel  Create saved search
[ Sign in ](https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fgit%2Fgit%2Ftree%2FHEAD%2FDocumentation%2Fhowto)
[ Sign up ](https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Ffiles%2Fdisambiguate&source=header-repo&source_repo=git%2Fgit)
Appearance settings
Resetting focus
You signed in with another tab or window. [Reload](https://github.com/git/git/tree/HEAD/Documentation/howto) to refresh your session. You signed out in another tab or window. [Reload](https://github.com/git/git/tree/HEAD/Documentation/howto) to refresh your session. You switched accounts on another tab or window. [Reload](https://github.com/git/git/tree/HEAD/Documentation/howto) to refresh your session. Dismiss alert
{{ message }}
[ git ](https://github.com/git) / **[git](https://github.com/git/git) ** Public
  * [ ](https://github.com/login?return_to=%2Fgit%2Fgit) You must be signed in to change notification settings
  * [ 27.6k ](https://github.com/login?return_to=%2Fgit%2Fgit)
  * [ Star  59.4k ](https://github.com/login?return_to=%2Fgit%2Fgit)


  * [ Code ](https://github.com/git/git)
  * [ Pull requests 340 ](https://github.com/git/git/pulls)
  * [ Actions ](https://github.com/git/git/actions)
  * [ Security 32 ](https://github.com/git/git/security)
  * [ Insights ](https://github.com/git/git/pulse)


Additional navigation options
  * [ Code  ](https://github.com/git/git)
  * [ Pull requests  ](https://github.com/git/git/pulls)
  * [ Actions  ](https://github.com/git/git/actions)
  * [ Security  ](https://github.com/git/git/security)
  * [ Insights  ](https://github.com/git/git/pulse)


## Collapse file tree
## Files
File does not exist on default branch
7b2bccb
Search this repository
  * .github
  * Documentation
    * RelNotes
    * config
    * howto
      * coordinate-embargoed-releases.adoc
      * howto-index.sh
      * keep-canonical-history-correct.adoc
      * maintain-git.adoc
      * meson.build
      * new-command.adoc
      * rebase-from-internal-branch.adoc
      * rebuild-from-update-hook.adoc
      * recover-corrupted-blob-object.adoc
      * recover-corrupted-object-harder.adoc
      * revert-a-faulty-merge.adoc
      * revert-branch-rebase.adoc
      * separating-topic-branches.adoc
      * setup-git-server-over-http.adoc
      * update-hook-example.adoc
      * use-git-daemon.adoc
      * using-merge-subtree.adoc
      * using-signed-tag-in-pull-request.adoc
    * includes
    * mergetools
    * technical
    * .gitignore
    * BreakingChanges.adoc
    * CodingGuidelines
    * DecisionMaking.adoc
    * Makefile
    * MyFirstContribution.adoc
    * MyFirstObjectWalk.adoc
    * ReviewingGuidelines.adoc
    * SubmittingPatches
    * ToolsForGit.adoc
    * asciidoc.conf.in
    * asciidoctor-extensions.rb.in
    * blame-options.adoc
    * build-docdep.perl
    * cat-texi.perl
    * cmd-list.sh
    * config.adoc
    * date-formats.adoc
    * diff-algorithm-option.adoc
    * diff-context-options.adoc
    * diff-format.adoc
    * diff-generate-patch.adoc
    * diff-options.adoc
    * doc-diff
    * docbook-xsl.css
    * docbook.xsl
    * docinfo-html.in
    * everyday.adoco
    * fetch-options.adoc
    * fix-texi.sh
    * for-each-ref-options.adoc
    * format-patch-caveats.adoc
    * format-patch-end-of-commit-message.adoc
    * fsck-msgids.adoc
    * generate-mergetool-list.sh
    * git-add.adoc
    * git-am.adoc
    * git-annotate.adoc
    * git-apply.adoc
    * git-archimport.adoc
    * git-archive.adoc
    * git-backfill.adoc
    * git-bisect-lk2009.adoc
    * git-bisect.adoc
    * git-blame.adoc
    * git-branch.adoc
    * git-bugreport.adoc
    * git-bundle.adoc
    * git-cat-file.adoc
    * git-check-attr.adoc
    * git-check-ignore.adoc
    * git-check-mailmap.adoc
    * git-check-ref-format.adoc
    * git-checkout-index.adoc
    * git-checkout.adoc
    * git-cherry-pick.adoc
    * git-cherry.adoc
    * git-citool.adoc
    * git-clean.adoc
    * git-clone.adoc
    * git-column.adoc
    * git-commit-graph.adoc
    * git-commit-tree.adoc
    * git-commit.adoc
    * git-config.adoc
    * git-count-objects.adoc
    * git-credential-cache--daemon.adoc
    * git-credential-cache.adoc
    * git-credential-store.adoc
    * git-credential.adoc
    * git-cvsexportcommit.adoc
    * git-cvsimport.adoc
    * git-cvsserver.adoc
    * git-daemon.adoc
    * git-describe.adoc
    * git-diagnose.adoc
    * git-diff-files.adoc
    * git-diff-index.adoc
    * git-diff-pairs.adoc
    * git-diff-tree.adoc
    * git-diff.adoc
    * git-difftool.adoc
    * git-fast-export.adoc
    * git-fast-import.adoc
    * git-fetch-pack.adoc
    * git-fetch.adoc
    * git-filter-branch.adoc
    * git-fmt-merge-msg.adoc
    * git-for-each-ref.adoc
    * git-for-each-repo.adoc
    * git-format-patch.adoc
    * git-fsck-objects.adoc
    * git-fsck.adoc
    * git-fsmonitor--daemon.adoc
    * git-gc.adoc
    * git-get-tar-commit-id.adoc
    * git-grep.adoc
    * git-gui.adoc
    * git-hash-object.adoc
    * git-help.adoc
    * git-history.adoc
    * git-hook.adoc
    * git-http-backend.adoc
    * git-http-fetch.adoc
    * git-http-push.adoc
    * git-imap-send.adoc
    * git-index-pack.adoc
    * git-init-db.adoc
    * git-init.adoc
    * git-instaweb.adoc
    * git-interpret-trailers.adoc
    * git-last-modified.adoc
    * git-log.adoc
    * git-ls-files.adoc
    * git-ls-remote.adoc
    * git-ls-tree.adoc
    * git-mailinfo.adoc
    * git-mailsplit.adoc
    * git-maintenance.adoc
    * git-merge-base.adoc
    * git-merge-file.adoc
    * git-merge-index.adoc
    * git-merge-one-file.adoc
    * git-merge-tree.adoc
    * git-merge.adoc
    * git-mergetool--lib.adoc
    * git-mergetool.adoc
    * git-mktag.adoc
    * git-mktree.adoc
    * git-multi-pack-index.adoc
    * git-mv.adoc
    * git-name-rev.adoc
    * git-notes.adoc
    * git-p4.adoc
    * git-pack-objects.adoc
    * git-pack-redundant.adoc
    * git-pack-refs.adoc
    * git-patch-id.adoc
    * git-prune-packed.adoc
    * git-prune.adoc
    * git-pull.adoc
    * git-push.adoc
    * git-quiltimport.adoc
    * git-range-diff.adoc
    * git-read-tree.adoc
    * git-rebase.adoc
    * git-receive-pack.adoc
    * git-reflog.adoc
    * git-refs.adoc
    * git-remote-ext.adoc
    * git-remote-fd.adoc
    * git-remote-helpers.adoco
    * git-remote.adoc
    * git-repack.adoc
    * git-replace.adoc
    * git-replay.adoc
    * git-repo.adoc
    * git-request-pull.adoc
    * git-rerere.adoc
    * git-reset.adoc
    * git-restore.adoc
    * git-rev-list.adoc
    * git-rev-parse.adoc
    * git-revert.adoc
    * git-rm.adoc
    * git-send-email.adoc
    * git-send-pack.adoc
    * git-sh-i18n--envsubst.adoc
    * git-sh-i18n.adoc
    * git-sh-setup.adoc
    * git-shell.adoc
    * git-shortlog.adoc
    * git-show-branch.adoc
    * git-show-index.adoc
    * git-show-ref.adoc
    * git-show.adoc
    * git-sparse-checkout.adoc
    * git-stage.adoc
    * git-stash.adoc
    * git-status.adoc
    * git-stripspace.adoc
    * git-submodule.adoc
    * git-svn.adoc
    * git-switch.adoc
    * git-symbolic-ref.adoc
    * git-tag.adoc
    * git-tools.adoc
    * git-unpack-file.adoc
    * git-unpack-objects.adoc
    * git-update-index.adoc
    * git-update-ref.adoc
    * git-update-server-info.adoc
    * git-upload-archive.adoc
    * git-upload-pack.adoc
    * git-var.adoc
    * git-verify-commit.adoc
    * git-verify-pack.adoc
    * git-verify-tag.adoc
    * git-version.adoc
    * git-web--browse.adoc
    * git-whatchanged.adoc
    * git-worktree.adoc
    * git-write-tree.adoc
    * git.adoc
    * gitattributes.adoc
    * gitcli.adoc
    * gitcore-tutorial.adoc
    * gitcredentials.adoc
    * gitcvs-migration.adoc
    * gitdatamodel.adoc
    * gitdiffcore.adoc
    * giteveryday.adoc
    * gitfaq.adoc
    * gitformat-bundle.adoc
    * gitformat-chunk.adoc
    * gitformat-commit-graph.adoc
    * gitformat-index.adoc
    * gitformat-loose.adoc
    * gitformat-pack.adoc
    * gitformat-signature.adoc
    * gitglossary.adoc
    * githooks.adoc
    * gitignore.adoc
    * gitk.adoc
    * gitmailmap.adoc
    * gitmodules.adoc
    * gitnamespaces.adoc
    * gitpacking.adoc
    * gitprotocol-capabilities.adoc
    * gitprotocol-common.adoc
    * gitprotocol-http.adoc
    * gitprotocol-pack.adoc
    * gitprotocol-v2.adoc
    * gitremote-helpers.adoc
    * gitrepository-layout.adoc
    * gitrevisions.adoc
    * gitsubmodules.adoc
    * gittutorial-2.adoc
    * gittutorial.adoc
    * gitweb.adoc
    * gitweb.conf.adoc
    * gitworkflows.adoc
    * glossary-content.adoc
    * i18n.adoc
    * install-doc-quick.sh
    * install-webdoc.sh
    * line-range-format.adoc
    * line-range-options.adoc
    * lint-delimited-sections.perl
    * lint-documentation-style.perl
    * lint-fsck-msgids.perl
    * lint-gitlink.perl
    * lint-man-end-blurb.perl
    * lint-man-section-order.perl
    * lint-manpages.sh
    * manpage-bold-literal.xsl
    * manpage-normal.xsl
    * manpage.xsl
    * merge-options.adoc
    * merge-strategies.adoc
    * meson.build
    * object-format-disclaimer.adoc
    * pack-refs-options.adoc
    * pretty-formats.adoc
    * pretty-options.adoc
    * pull-fetch-param.adoc
    * ref-reachability-filters.adoc
    * ref-storage-format.adoc
    * rerere-options.adoc
    * rev-list-description.adoc
    * rev-list-options.adoc
    * revisions.adoc
    * scalar.adoc
    * sequencer.adoc
    * signoff-option.adoc
    * texi.xsl
    * trace2-target-values.adoc
    * transfer-data-leaks.adoc
    * urls-remotes.adoc
    * urls.adoc
    * user-manual.adoc
  * bin-wrappers
  * block-sha1
  * builtin
  * ci
  * compat
  * compiler-tricks
  * contrib
  * ewah
  * git-gui
  * gitk-git
  * gitweb
  * mergetools
  * negotiator
  * odb
  * oss-fuzz
  * perl
  * po
  * refs
  * reftable
  * sha1
  * sha1collisiondetection
  * sha1dc
  * sha256
  * src
  * subprojects
  * t
  * templates
  * trace2
  * xdiff
  * .cirrus.yml
  * .clang-format
  * .editorconfig
  * .gitattributes
  * .gitignore
  * .gitlab-ci.yml
  * .gitmodules
  * .mailmap
  * .tsan-suppressions
  * CODE_OF_CONDUCT.md
  * COPYING
  * Cargo.toml
  * GIT-BUILD-OPTIONS.in
  * GIT-VERSION-FILE.in
  * GIT-VERSION-GEN
  * INSTALL
  * LGPL-2.1
  * Makefile
  * README.md
  * RelNotes
  * SECURITY.md
  * abspath.c
  * abspath.h
  * aclocal.m4
  * add-interactive.c
  * add-interactive.h
  * add-patch.c
  * advice.c
  * advice.h
  * alias.c
  * alias.h
  * alloc.c
  * alloc.h
  * apply.c
  * apply.h
  * archive-tar.c
  * archive-zip.c
  * archive.c
  * archive.h
  * attr.c
  * attr.h
  * banned.h
  * base85.c
  * base85.h
  * bisect.c
  * bisect.h
  * blame.c
  * blame.h
  * blob.c
  * blob.h
  * bloom.c
  * bloom.h
  * branch.c
  * branch.h
  * builtin.h
  * bundle-uri.c
  * bundle-uri.h
  * bundle.c
  * bundle.h
  * cache-tree.c
  * cache-tree.h
  * cbtree.c
  * cbtree.h
  * chdir-notify.c
  * chdir-notify.h
  * check-builtins.sh
  * checkout.c
  * checkout.h
  * chunk-format.c
  * chunk-format.h
  * color.c
  * color.h
  * column.c
  * column.h
  * combine-diff.c
  * command-list.txt
  * commit-graph.c
  * commit-graph.h
  * commit-reach.c
  * commit-reach.h
  * commit-slab-decl.h
  * commit-slab-impl.h
  * commit-slab.h
  * commit.c
  * commit.h
  * common-exit.c
  * common-init.c
  * common-init.h
  * common-main.c
  * config.c
  * config.h
  * config.mak.dev
  * config.mak.in
  * config.mak.uname
  * configure.ac
  * connect.c
  * connect.h
  * connected.c
  * connected.h
  * convert.c
  * convert.h
  * copy.c
  * copy.h
  * credential.c
  * credential.h
  * csum-file.c
  * csum-file.h
  * ctype.c
  * daemon.c
  * date.c
  * date.h
  * decorate.c
  * decorate.h
  * delta-islands.c
  * delta-islands.h
  * delta.h
  * detect-compiler
  * diagnose.c
  * diagnose.h
  * diff-delta.c
  * diff-lib.c
  * diff-merges.c
  * diff-merges.h
  * diff-no-index.c
  * diff.c
  * diff.h
  * diffcore-break.c
  * 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
  * dir.h
  * editor.c
  * editor.h
  * entry.c
  * entry.h
  * environment.c
  * environment.h
  * exec-cmd.c
  * exec-cmd.h
  * fetch-negotiator.c
  * fetch-negotiator.h
  * fetch-pack.c
  * fetch-pack.h
  * 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
  * generate-cmdlist.sh
  * generate-configlist.sh
  * generate-hooklist.sh
  * generate-perl.sh
  * generate-python.sh
  * generate-script.sh
  * gettext.c
  * gettext.h
  * git-archimport.perl
  * git-compat-util.h
  * 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
  * git-sh-i18n.sh
  * git-sh-setup.sh
  * git-submodule.sh
  * git-svn.perl
  * git-web--browse.sh
  * git-zlib.c
  * git-zlib.h
  * git.c
  * git.rc.in
  * gpg-interface.c
  * gpg-interface.h
  * graph.c
  * graph.h
  * grep.c
  * grep.h
  * hash-lookup.c
  * hash-lookup.h
  * hash.c
  * hash.h
  * 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-push.c
  * http-walker.c
  * http.c
  * http.h
  * 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
  * 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.h
  * list-objects.c
  * list-objects.h
  * list.h
  * lockfile.c
  * lockfile.h
  * log-tree.c
  * log-tree.h
  * loose.c
  * loose.h
  * 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
  * merge-ll.h
  * merge-ort-wrappers.c
  * merge-ort-wrappers.h
  * merge-ort.c
  * merge-ort.h
  * merge.c
  * merge.h
  * mergesort.h
  * meson.build
  * meson_options.txt
  * midx-write.c
  * midx.c
  * midx.h
  * 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
  * object-file.h
  * object-name.c
  * object-name.h
  * object.c
  * object.h
  * odb.c
  * odb.h
  * oid-array.c
  * oid-array.h
  * oidmap.c
  * oidmap.h
  * oidset.c
  * oidset.h
  * oidtree.c
  * oidtree.h
  * pack-bitmap-write.c
  * pack-bitmap.c
  * pack-bitmap.h
  * pack-check.c
  * 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
  * pack.h
  * packfile.c
  * packfile.h
  * pager.c
  * pager.h
  * parallel-checkout.c
  * parallel-checkout.h
  * parse-options-cb.c
  * parse-options.c
  * parse-options.h
  * parse.c
  * parse.h
  * patch-delta.c
  * patch-ids.c
  * patch-ids.h
  * path-walk.c
  * path-walk.h
  * path.c
  * path.h
  * pathspec.c
  * 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
  * prompt.h
  * protocol-caps.c
  * 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
  * reachable.h
  * read-cache-ll.h
  * read-cache.c
  * read-cache.h
  * rebase-interactive.c
  * rebase-interactive.h
  * rebase.c
  * rebase.h
  * ref-filter.c
  * ref-filter.h
  * reflog-walk.c
  * reflog-walk.h
  * reflog.c
  * reflog.h
  * refs.c
  * refs.h
  * refspec.c
  * refspec.h
  * remote-curl.c
  * remote.c
  * remote.h
  * repack-cruft.c
  * repack-filtered.c
  * repack-geometry.c
  * repack-midx.c
  * repack-promisor.c
  * repack.c
  * repack.h
  * replace-object.c
  * replace-object.h
  * replay.c
  * replay.h
  * repo-settings.c
  * repo-settings.h
  * repository.c
  * repository.h
  * rerere.c
  * rerere.h
  * reset.c
  * reset.h
  * resolve-undo.c
  * resolve-undo.h
  * revision.c
  * revision.h
  * run-command.c
  * run-command.h
  * sane-ctype.h
  * scalar.c
  * send-pack.c
  * send-pack.h
  * sequencer.c
  * sequencer.h
  * serve.c
  * serve.h
  * server-info.c
  * server-info.h
  * setup.c
  * setup.h
  * sh-i18n--envsubst.c
  * sha1dc_git.c
  * sha1dc_git.h
  * shallow.c
  * shallow.h
  * shared.mak
  * shell.c
  * shortlog.h
  * sideband.c
  * 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.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
  * submodule.h
  * symlinks.c
  * symlinks.h
  * tag.c
  * tag.h
  * tar.h
  * tempfile.c
  * tempfile.h
  * thread-utils.c
  * thread-utils.h
  * tmp-objdir.c
  * tmp-objdir.h
  * trace.c
  * trace.h
  * trace2.c
  * trace2.h
  * trailer.c
  * trailer.h
  * transport-helper.c
  * transport-internal.h
  * transport.c
  * 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
  * unix-stream-server.c
  * unix-stream-server.h
  * unpack-trees.c
  * unpack-trees.h
  * upload-pack.c
  * upload-pack.h
  * url.c
  * url.h
  * urlmatch.c
  * urlmatch.h
  * usage.c
  * userdiff.c
  * 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.h
  * wrapper.c
  * wrapper.h
  * write-or-die.c
  * write-or-die.h
  * ws.c
  * ws.h
  * wt-status.c
  * wt-status.h
  * xdiff-interface.c
  * xdiff-interface.h


## Breadcrumbs
  1. [git](https://github.com/git/git/tree/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5)
  2. /[Documentation](https://github.com/git/git/tree/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation)


/
# howto
/
Copy path
## Directory actions
## More options
More options
## Directory actions
## More options
More options
## Latest commit
![benknoble](https://avatars.githubusercontent.com/u/22802209?v=4&size=40)![gitster](https://avatars.githubusercontent.com/u/54884?v=4&size=40)
[benknoble](https://github.com/git/git/commits?author=benknoble)
and
[gitster](https://github.com/git/git/commits?author=gitster)
[meson: make GIT_HTML_PATH configurable](https://github.com/git/git/commit/d63417e3ad67e5857cd52f9177fe39719d6ac84a)
Open commit details
Nov 6, 2025
[d63417e](https://github.com/git/git/commit/d63417e3ad67e5857cd52f9177fe39719d6ac84a) · Nov 6, 2025
## History
[History](https://github.com/git/git/commits/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto)
Open commit details
[](https://github.com/git/git/commits/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto)History
## Breadcrumbs
  1. [git](https://github.com/git/git/tree/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5)
  2. /[Documentation](https://github.com/git/git/tree/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation)


/
# howto
/
Top
## Folders and files
Name | Name | Last commit message | Last commit date
---|---|---|---
### parent directory
[](https://github.com/git/git/tree/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation)
[coordinate-embargoed-releases.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/coordinate-embargoed-releases.adoc "coordinate-embargoed-releases.adoc") | [coordinate-embargoed-releases.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/coordinate-embargoed-releases.adoc "coordinate-embargoed-releases.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[howto-index.sh](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/howto-index.sh "howto-index.sh") | [howto-index.sh](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/howto-index.sh "howto-index.sh") | [doc: update howto-index.sh for .adoc extensions](https://github.com/git/git/commit/41c793eae900e632dbc73ec7f900ea1e7d38aa92 "doc: update howto-index.sh for .adoc extensions

The .txt extensions were changed to .adoc in 1f010d6bdf \(doc: use .adoc
extension for AsciiDoc files, 2025-01-20\).  This left broken links in
the generated howto-index.html.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Mar 1, 2025
[keep-canonical-history-correct.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/keep-canonical-history-correct.adoc "keep-canonical-history-correct.adoc") | [keep-canonical-history-correct.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/keep-canonical-history-correct.adoc "keep-canonical-history-correct.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[maintain-git.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/maintain-git.adoc "maintain-git.adoc") | [maintain-git.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/maintain-git.adoc "maintain-git.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[meson.build](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/meson.build "meson.build") | [meson.build](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/meson.build "meson.build") | [meson: make GIT_HTML_PATH configurable](https://github.com/git/git/commit/d63417e3ad67e5857cd52f9177fe39719d6ac84a "meson: make GIT_HTML_PATH configurable

Makefile-based builds can configure Git's internal HTML_PATH by defining
htmldir, which is useful for packagers that put documentation in
different locations. Gentoo, for example, uses version-suffixed
directories like ${prefix}/share/doc/git-2.51 and puts the HTML
documentation in an 'html' subdirectory of the same.

Propagate the same configuration knob to Meson-based builds so that
"git --html-path" on such systems can be configured to output the
correct directory.

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Nov 6, 2025
[new-command.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/new-command.adoc "new-command.adoc") | [new-command.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/new-command.adoc "new-command.adoc") | [howto/new-command: update reference to builtin docs](https://github.com/git/git/commit/9100c91cd4c83827b6c3c296e3b2ce89f9e98f52 "howto/new-command: update reference to builtin docs

Commit ec14d4ecb5 \(builtin.h: take over documentation from
api-builtin.txt, 2017-08-02\) deleted api-builtin.txt and moved the
contents into builtin.h.  Most of the references were fixed in
d85e9448dd \(new-command.txt: update reference to builtin docs,
2023-02-04\), but one remained.  Fix it.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Mar 3, 2025
[rebase-from-internal-branch.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/rebase-from-internal-branch.adoc "rebase-from-internal-branch.adoc") | [rebase-from-internal-branch.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/rebase-from-internal-branch.adoc "rebase-from-internal-branch.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[rebuild-from-update-hook.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/rebuild-from-update-hook.adoc "rebuild-from-update-hook.adoc") | [rebuild-from-update-hook.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/rebuild-from-update-hook.adoc "rebuild-from-update-hook.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[recover-corrupted-blob-object.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/recover-corrupted-blob-object.adoc "recover-corrupted-blob-object.adoc") | [recover-corrupted-blob-object.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/recover-corrupted-blob-object.adoc "recover-corrupted-blob-object.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[recover-corrupted-object-harder.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/recover-corrupted-object-harder.adoc "recover-corrupted-object-harder.adoc") | [recover-corrupted-object-harder.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/recover-corrupted-object-harder.adoc "recover-corrupted-object-harder.adoc") | [git-zlib: use `struct z_stream_s` instead of typedef](https://github.com/git/git/commit/ce76cec964ed1c8ad6c9fcee9fd833c0ec8cccf9 "git-zlib: use `struct z_stream_s` instead of typedef

Throughout the Git codebase we're using the typedeffed version of
`z_stream`, which maps to `struct z_stream_s`. By using a typedef
instead of the struct it becomes somewhat harder to predeclare the
symbol so that headers depending on the struct can do so without having
to pull in "zlib-compat.h".

We don't yet have users that would really care about this: the only
users that declare `z_stream` as a pointer are in "reftable/block.h",
which is a header that is internal to the reftable library. But in the
next step we're going to expose the `struct reftable_block` publicly,
and that struct does contain a pointer to `z_stream`. And as the public
header shouldn't depend on "reftable/system.h", which is an internal
implementation detail, we won't have the typedef for `z_stream` readily
available.

Prepare for this change by using `struct z_stream_s` throughout our code
base. In case zlib-ng is used we use a define to map from `z_stream_s`
to `zng_stream_s`.

Drop the pre-declaration of `struct z_stream` while at it. This struct
does not exist in the first place, and the declaration wasn't needed
because "reftable/block.h" already includes "reftable/basics.h" which
transitively includes "reftable/system.h" and thus "git-zlib.h".

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Apr 7, 2025
[revert-a-faulty-merge.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/revert-a-faulty-merge.adoc "revert-a-faulty-merge.adoc") | [revert-a-faulty-merge.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/revert-a-faulty-merge.adoc "revert-a-faulty-merge.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[revert-branch-rebase.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/revert-branch-rebase.adoc "revert-branch-rebase.adoc") | [revert-branch-rebase.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/revert-branch-rebase.adoc "revert-branch-rebase.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[separating-topic-branches.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/separating-topic-branches.adoc "separating-topic-branches.adoc") | [separating-topic-branches.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/separating-topic-branches.adoc "separating-topic-branches.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[setup-git-server-over-http.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/setup-git-server-over-http.adoc "setup-git-server-over-http.adoc") | [setup-git-server-over-http.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/setup-git-server-over-http.adoc "setup-git-server-over-http.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[update-hook-example.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/update-hook-example.adoc "update-hook-example.adoc") | [update-hook-example.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/update-hook-example.adoc "update-hook-example.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[use-git-daemon.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/use-git-daemon.adoc "use-git-daemon.adoc") | [use-git-daemon.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/use-git-daemon.adoc "use-git-daemon.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[using-merge-subtree.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/using-merge-subtree.adoc "using-merge-subtree.adoc") | [using-merge-subtree.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/using-merge-subtree.adoc "using-merge-subtree.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
[using-signed-tag-in-pull-request.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/using-signed-tag-in-pull-request.adoc "using-signed-tag-in-pull-request.adoc") | [using-signed-tag-in-pull-request.adoc](https://github.com/git/git/blob/7b2bccb0d58d4f24705bf985de1f4612e4cf06e5/Documentation/howto/using-signed-tag-in-pull-request.adoc "using-signed-tag-in-pull-request.adoc") | [doc: use .adoc extension for AsciiDoc files](https://github.com/git/git/commit/1f010d6bdf756129db13d1367c888aa4153f6d87 "doc: use .adoc extension for AsciiDoc files

We presently use the ".txt" extension for our AsciiDoc files.  While not
wrong, most editors do not associate this extension with AsciiDoc,
meaning that contributors don't get automatic editor functionality that
could be useful, such as syntax highlighting and prose linting.

It is much more common to use the ".adoc" extension for AsciiDoc files,
since this helps editors automatically detect files and also allows
various forges to provide rich \(HTML-like\) rendering.  Let's do that
here, renaming all of the files and updating the includes where
relevant.  Adjust the various build scripts and makefiles to use the new
extension as well.

Note that this should not result in any user-visible changes to the
documentation.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>") | Jan 21, 2025
View all files
## Footer
[ ](https://github.com) © 2026 GitHub, Inc.
### Footer navigation
  * [Terms](https://docs.github.com/site-policy/github-terms/github-terms-of-service)
  * [Privacy](https://docs.github.com/site-policy/privacy-policies/github-privacy-statement)
  * [Security](https://github.com/security)
  * [Status](https://www.githubstatus.com/)
  * [Community](https://github.community/)
  * [Docs](https://docs.github.com/)
  * [Contact](https://support.github.com?tags=dotcom-footer)
  * Manage cookies
  * Do not share my personal information
