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

Re: why can *some* git commands not be run from within .git directory?

From
Bryan Turner <bturner@atlassian.com>
Date
Nov 14, 2017, 09:38 UTC
Message-ID
<CAGyf7-FSHW4DqMXt1043FjmOO8tRQHq=xFGwQgKTK06Gi+a-PA@mail.gmail.com>
In-Reply-To
<alpine.LFD.2.21.1711140409020.13653@localhost.localdomain>
On Tue, Nov 14, 2017 at 1:18 AM, Robert P. J. Day <rpjday@crashcourse.ca> wrote:
Show 10 quoted lines
>
>   just noticed something i was unaware of -- some git commands can't
> be run if i'm in the .git directory, while others can. for example,
> if i "cd .git", commands like this work just fine:
>
>   $ git show
>   $ git branch
>   $ git log
>
> but others seem unwilling to determine the "working tree":

Once Git finds a .git directory, or determines it's in one, it doesn't look "higher"; instead, it runs like it's in a bare clone. That means any command that requires a work tree or an index generally won't work. Of course, you can still tell Git where the work tree is and then the commands work fine from the .git directory:

incom@Jael MINGW64 /c/Temp/example/.git (GIT_DIR!) $ GIT_WORK_TREE=.. git status On branch master Your branch is up-to-date with 'origin/master'.

nothing to commit, working tree clean
Show 19 quoted lines
>
>   $ git status
>   fatal: This operation must be run in a work tree
>   $
>
> and:
>
>   $ git stash list
>   fatal: /usr/libexec/git-core/git-stash cannot be used without a working tree.
>   $
>
> what's the distinction between commands that can work this way, and
> commands that can't?
>
> rday
>
> p.s. i will refrain from pointing out the inconsistency in using the
> phrases "work tree" and "working tree" to mean the same thing, when
> there is a distinct "worktree" entity.
No you won't, clearly.
Show 10 quoted lines
>
> --
>
> ========================================================================
> Robert P. J. Day                                 Ottawa, Ontario, CANADA
>                         https://urldefense.proofpoint.com/v2/url?u=http-3A__crashcourse.ca&d=DwIBAg&c=wBUwXtM9sKhff6UeHOQgvw&r=uBedA6EFFVX1HiLgmpdrBrv8bIDAScKjk1yk9LOASBM&m=yPGW_MCaDCBECSMjz40m8vsxUhljCB3dnrQ4TBi8PtE&s=-JNZXqYtyY7CIJGy65WWa88Kq7BaelyajFehPQZkvo4&e=
>
> Twitter:                                       https://urldefense.proofpoint.com/v2/url?u=http-3A__twitter.com_rpjday&d=DwIBAg&c=wBUwXtM9sKhff6UeHOQgvw&r=uBedA6EFFVX1HiLgmpdrBrv8bIDAScKjk1yk9LOASBM&m=yPGW_MCaDCBECSMjz40m8vsxUhljCB3dnrQ4TBi8PtE&s=-9gIAxcdRGPmIz1rpLLb7nl14azEwoE-fOJ-IxAYi18&e=
> LinkedIn:                               https://urldefense.proofpoint.com/v2/url?u=http-3A__ca.linkedin.com_in_rpjday&d=DwIBAg&c=wBUwXtM9sKhff6UeHOQgvw&r=uBedA6EFFVX1HiLgmpdrBrv8bIDAScKjk1yk9LOASBM&m=yPGW_MCaDCBECSMjz40m8vsxUhljCB3dnrQ4TBi8PtE&s=prnIhreU-Vhx0V6lRCBQEPbJk2P8bPlHcRFus1X_6wM&e=
> ========================================================================
Previous: Robert P. J. DayNext: Robert P. J. Day
Message 2 of 3 in “why can *some* git commands not be run from within .git directory?”
  1. Robert P. J. DayNov 14, 2017
  2. Bryan TurnerNov 14, 2017
  3. Robert P. J. DayNov 14, 2017

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.