threads / discuss / 22462

GIT_WORK_TREE environment variable not working

Subject: GIT_WORK_TREE environment variable not working

## tl;dr

3 messages between Feb 1, 2010 and Feb 1, 2010.

replies: 2people: 2as markdown or json

Ron Garret· Feb 1, 2010, 01:33 UTC · lore
What am I doing wrong here?

[ron@mickey:~/devel/gittest]$ pwd /Users/ron/devel/gittest [ron@mickey:~/devel/gittest]$ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # git/ nothing added to commit but untracked files present (use "git add" to track) [ron@mickey:~/devel/gittest]$ cd [ron@mickey:~]$ export GIT_WORK_TREE=/Users/ron/devel/gittest [ron@mickey:~]$ git status fatal: Not a git repository (or any of the parent directories): .git [ron@mickey:~]$ git status --work-tree=/Users/ron/devel/gittest fatal: Not a git repository (or any of the parent directories): .git [ron@mickey:~]$

Jeff King· Feb 1, 2010, 05:19 UTC · re: Ron Garret · lore

Re: GIT_WORK_TREE environment variable not working

On Sun, Jan 31, 2010 at 05:33:47PM -0800, Ron Garret wrote:
Show 19 quoted lines
> What am I doing wrong here?
> 
> [ron@mickey:~/devel/gittest]$ pwd
> /Users/ron/devel/gittest
> [ron@mickey:~/devel/gittest]$ git status
> # On branch master
> # Untracked files:
> #   (use "git add <file>..." to include in what will be committed)
> #
> #  git/
> nothing added to commit but untracked files present (use "git add" to 
> track)
> [ron@mickey:~/devel/gittest]$ cd
> [ron@mickey:~]$ export GIT_WORK_TREE=/Users/ron/devel/gittest
> [ron@mickey:~]$ git status
> fatal: Not a git repository (or any of the parent directories): .git
> [ron@mickey:~]$ git status --work-tree=/Users/ron/devel/gittest
> fatal: Not a git repository (or any of the parent directories): .git
> [ron@mickey:~]$

You haven't told git where to find the repository itself. GIT_WORK_TREE is about saying "here are my work tree files", but it is explicitly not about "here is where my .git directory is". That lets you keep the two in totally separate locations. E.g., you could do something like tracking /etc, but keep your .git directory in /var.

For your case above, you would want to also
  export GIT_DIR=/Users/ron/devel/gittest/.git

though since you have a fully formed repository, I don't think there is really any advantage over just doing:

  cd /Users/ron/devel/gittest && git $whatever

though perhaps that is because this is not a real use case, but rather just you trying to figure out the feature. :)

-Peff
Ron Garret· Feb 1, 2010, 07:09 UTC · re: Jeff King · lore

Re: GIT_WORK_TREE environment variable not working

In article <20100201051942.GA7761@coredump.intra.peff.net>,
 Jeff King <peff@peff.net> wrote:
Show 31 quoted lines
> On Sun, Jan 31, 2010 at 05:33:47PM -0800, Ron Garret wrote:
> 
> > What am I doing wrong here?
> > 
> > [ron@mickey:~/devel/gittest]$ pwd
> > /Users/ron/devel/gittest
> > [ron@mickey:~/devel/gittest]$ git status
> > # On branch master
> > # Untracked files:
> > #   (use "git add <file>..." to include in what will be committed)
> > #
> > #  git/
> > nothing added to commit but untracked files present (use "git add" to 
> > track)
> > [ron@mickey:~/devel/gittest]$ cd
> > [ron@mickey:~]$ export GIT_WORK_TREE=/Users/ron/devel/gittest
> > [ron@mickey:~]$ git status
> > fatal: Not a git repository (or any of the parent directories): .git
> > [ron@mickey:~]$ git status --work-tree=/Users/ron/devel/gittest
> > fatal: Not a git repository (or any of the parent directories): .git
> > [ron@mickey:~]$
> 
> You haven't told git where to find the repository itself. GIT_WORK_TREE
> is about saying "here are my work tree files", but it is explicitly not
> about "here is where my .git directory is". That lets you keep the two
> in totally separate locations. E.g., you could do something like
> tracking /etc, but keep your .git directory in /var.
> 
> For your case above, you would want to also
> 
>   export GIT_DIR=/Users/ron/devel/gittest/.git
Ah.  Thanks!
Show 7 quoted lines
> though since you have a fully formed repository, I don't think there is
> really any advantage over just doing:
> 
>   cd /Users/ron/devel/gittest && git $whatever
> 
> though perhaps that is because this is not a real use case, but rather
> just you trying to figure out the feature. :)

It's a real use case. The situation is that I'm using git as a back end for an IDE, so I can't rely on the cwd.

rg

← back to recent threads