From d82ad54945be557f9c70550842ffc568b25cd16a Mon Sep 17 00:00:00 2001 From: Heba Waly Date: Thu, 30 Jan 2020 01:14:01 +0000 Subject: [PATCH] git: update documentation for --git-dir git --git-dir is a bit confusing and sometimes doesn't work as the user would expect it to. For example, if the user runs `git --git-dir= status`, git will skip the repository discovery algorithm and will assign the work tree to the user's current work directory unless otherwise specified. When this assignment is wrong, the output will not match the user's expectations. This patch updates the documentation to make it clearer. Signed-off-by: Heba Waly Helped-by: Junio C Hamano Signed-off-by: Junio C Hamano --- Documentation/git.txt | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Documentation/git.txt b/Documentation/git.txt index b1597ac002..41374f24fa 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -110,9 +110,23 @@ foo.bar= ...`) sets `foo.bar` to the empty string which `git config Do not pipe Git output into a pager. --git-dir=:: - Set the path to the repository. This can also be controlled by - setting the `GIT_DIR` environment variable. It can be an absolute - path or relative path to current working directory. + Set the path to the repository (".git" directory). This can also be + controlled by setting the `GIT_DIR` environment variable. It can be + an absolute path or relative path to current working directory. ++ +Specifying the location of the ".git" directory using this +option (or `GIT_DIR` environment variable) turns off the +repository discovery that tries to find a directory with +".git" subdirectory (which is how the repository and the +top-level of the working tree are discovered), and tells Git +that you are at the top level of the working tree. If you +are not at the top-level directory of the working tree, you +should tell Git where the top-level of the working tree is, +with the `--work-tree=` option (or `GIT_WORK_TREE` +environment variable) ++ +If you just want to run git as if it was started in `` then use +`git -C `. --work-tree=:: Set the path to the working tree. It can be an absolute path