git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4] git: update documentation for --git-dir

From
Heba Waly via GitGitGadget <gitgitgadget@gmail.com>
Date
Jan 30, 2020, 01:14 UTC
Message-ID
<pull.537.v4.git.1580346841614.gitgitgadget@gmail.com>
In-Reply-To
<pull.537.v3.git.1580185440512.gitgitgadget@gmail.com>
From: Heba Waly <heba.waly@gmail.com>

git --git-dir <path> 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=<path> 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 <heba.waly@gmail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
---
    [Outreachy] 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=<path> 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.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-537%2FHebaWaly%2Fgit_dir_doc-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-537/HebaWaly/git_dir_doc-v4
Pull-Request: https://github.com/gitgitgadget/git/pull/537
Range-diff vs v3:
 1:  2a1404f1b3 ! 1:  e27f150c4b git: update documentation for --git-dir
     @@ -31,18 +31,18 @@
      +	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
     ++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=<path> option (or GIT_WORK_TREE
     ++with the `--work-tree=<path>` option (or `GIT_WORK_TREE`
      +environment variable)
      ++
     -+If you just want to run git as if it was started in <path> then use
     -+git -C.
     ++If you just want to run git as if it was started in `<path>` then use
     ++`git -C <path>`.
       
       --work-tree=<path>::
       	Set the path to the working tree. It can be an absolute path
 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=<path>::
-	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=<path>` option (or `GIT_WORK_TREE`
+environment variable)
++
+If you just want to run git as if it was started in `<path>` then use
+`git -C <path>`.
 
 --work-tree=<path>::
 	Set the path to the working tree. It can be an absolute path

base-commit: 232378479ee6c66206d47a9be175e3a39682aea6
-- 
gitgitgadget
Previous: Heba WalyNext: Junio C Hamano
Message 16 of 17 in “git: update documentation for --git-dir”
  1. git: update documentation for --git-dirHeba Waly via GitGitGadget, Jan 23, 2020
  2. Heba WalyJan 23, 2020
  3. Emily ShafferJan 23, 2020
  4. Junio C HamanoJan 23, 2020
  5. Junio C HamanoJan 23, 2020
  6. Junio C HamanoJan 23, 2020
  7. Heba WalyJan 27, 2020
  8. git: update documentation for --git-dirHeba Waly via GitGitGadget, Jan 27, 2020
  9. Johannes SixtJan 27, 2020
  10. Heba WalyJan 28, 2020
  11. Jeff KingJan 28, 2020
  12. Heba WalyJan 28, 2020
  13. git: update documentation for --git-dirHeba Waly via GitGitGadget, Jan 28, 2020
  14. Junio C HamanoJan 28, 2020
  15. Heba WalyJan 29, 2020
  16. git: update documentation for --git-dirHeba Waly via GitGitGadget, Jan 30, 2020
  17. Junio C HamanoJan 30, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.