From: "Omri Sarig via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Omri Sarig <omri.sarig13@gmail.com>, Omri Sarig <omri.sarig13@gmail.com>
Subject: [PATCH] doc: add information regarding external commands
Date: Mon, 02 Mar 2026 19:31:47 +0000 [thread overview]
Message-ID: <pull.2220.git.git.1772479907062.gitgitgadget@gmail.com> (raw)
From: Omri Sarig <omri.sarig13@gmail.com>
Git supports running external commands in the user's PATH as if they
were built-in commands (see execv_dashed_external in git.c).
This feature was not documented in any of Git's user-facing
documentation.
This commit adds a short documentation of this feature, making it easier
for users to discover and use.
Signed-off-by: Omri Sarig <omri.sarig13@gmail.com>
---
doc: Add information regarding external commands
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2220%2Fomrisarig13%2Fexternal-commands-documentation-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2220/omrisarig13/external-commands-documentation-v1
Pull-Request: https://github.com/git/git/pull/2220
Documentation/git.adoc | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Documentation/git.adoc b/Documentation/git.adoc
index ce099e78b8..da7c1329da 100644
--- a/Documentation/git.adoc
+++ b/Documentation/git.adoc
@@ -345,6 +345,24 @@ users typically do not use them directly.
include::{build_dir}/cmds-purehelpers.adoc[]
+External commands
+-----------------
+
+In addition to the commands implemented by Git, Git will execute any executable
+with the prefix "git-" in the user path as if it is a Git command.
+
+All parameters of the invocation are passed to the script, making running "git
+foo arg1 arg2" equivalent to running "git-foo arg1 arg2". When running "git
+help" with the command name, Git will invoke the man page for the given
+command, making running "git help foo" equivalent to running "man git-foo".
+
+This makes it possible to extend Git with custom commands, without the need to
+change its source code.
+
+Git looks for external commands after looking for built-in commands, but before
+looking for aliases. Therefore, if an external command have the same name as an
+alias, it'll run instead of the alias.
+
Guides
------
base-commit: 2cc71917514657b93014134350864f4849edfc83
--
gitgitgadget
next reply other threads:[~2026-03-02 19:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-02 19:31 Omri Sarig via GitGitGadget [this message]
2026-03-02 22:56 ` [PATCH] doc: add information regarding external commands Junio C Hamano
2026-03-03 17:07 ` Omri Sarig
2026-03-03 17:12 ` [PATCH v2] " Omri Sarig via GitGitGadget
2026-03-03 17:43 ` [PATCH v3] " Omri Sarig via GitGitGadget
2026-03-03 18:40 ` Junio C Hamano
2026-03-03 18:48 ` D. Ben Knoble
2026-03-03 20:11 ` Omri Sarig
2026-03-03 20:36 ` Junio C Hamano
2026-03-04 15:03 ` [PATCH v4] " Omri Sarig via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.2220.git.git.1772479907062.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=omri.sarig13@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.