Matthieu Moy  committed 463a849

Add and document a global --no-pager option for git.

To keep the change small, this is done by setting GIT_PAGER to "cat".

Signed-off-by: Matthieu Moy <>
Acked-by: Linus Torvalds <>
Acked-by: Brian Gernhardt <>
Signed-off-by: Junio C Hamano <>

  • Participants
  • Parent commits 2f82f76
  • Branches master

Comments (0)

Files changed (2)

File Documentation/git.txt

-'git' [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate]
+'git' [--version] [--exec-path[=GIT_EXEC_PATH]]
+    [-p|--paginate|--no-pager]
     [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
     [--help] COMMAND [ARGS]
 	Pipe all output into 'less' (or if set, $PAGER).
+	Do not pipe git output into a pager.
 	Set the path to the repository. This can also be controlled by
 	setting the GIT_DIR environment variable.
 #include "quote.h"
 const char git_usage_string[] =
-	"git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]";
+	"git [--version] [--exec-path[=GIT_EXEC_PATH]] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]";
 static void prepend_to_path(const char *dir, int len)
 		} else if (!strcmp(cmd, "-p") || !strcmp(cmd, "--paginate")) {
+		} else if (!strcmp(cmd, "--no-pager")) {
+			setenv("GIT_PAGER", "cat", 1);
+			if (envchanged)
+				*envchanged = 1;
 		} else if (!strcmp(cmd, "--git-dir")) {
 			if (*argc < 2) {
 				fprintf(stderr, "No directory given for --git-dir.\n" );