threads / discuss / 9392

$GIT_DIR usage

Subject: $GIT_DIR usage

## tl;dr

6 messages between Aug 5, 2007 and Aug 5, 2007.

replies: 5people: 3as markdown or json

Dan Zwell· Aug 5, 2007, 09:58 UTC · lore

Hi, I had a question about $GIT_DIR. That is to say, it doesn't seem to work. I am using Git 1.5.2.4. See the following: (all the commands I tried besides "git-init" failed).

$ export GIT_DIR="`pwd`/.git_public" $ git init warning: templates not found /usr/share//git-core/templates/ Initialized empty Git repository in /home/user/temp/.git_public/ $ echo > new_file $ git add new_file fatal: add must be run in a work tree $ git commit -a fatal: /usr/bin/git-commit cannot be used without a working tree. $ git commit fatal: /usr/bin/git-commit cannot be used without a working tree. $

Is $GIT_DIR not meant to be used this way? Does it have a different purpose / use case, or is this just a bug?

Thanks, Dan

Dmitry Kakurin· Aug 5, 2007, 11:55 UTC · re: Dan Zwell · lore

Re: $GIT_DIR usage

I think you also need to set GIT_WORK_TREE. This way Git will know the root of directories that it controls.

- Dmitry
----- Original Message ----- 
From: "Dan Zwell" <dzwell@gmail.com>
Newsgroups: gmane.comp.version-control.git
To: <git@vger.kernel.org>
Sent: Sunday, 5 August 2007 2:58
Subject: $GIT_DIR usage
Show 21 quoted lines
> Hi, I had a question about $GIT_DIR. That is to say, it doesn't seem to 
> work. I am using Git 1.5.2.4. See the following: (all the commands I 
> tried besides "git-init" failed).
> 
> $ export GIT_DIR="`pwd`/.git_public"
> $ git init
> warning: templates not found /usr/share//git-core/templates/
> Initialized empty Git repository in /home/user/temp/.git_public/
> $ echo > new_file
> $ git add new_file
> fatal: add must be run in a work tree
> $ git commit -a
> fatal: /usr/bin/git-commit cannot be used without a working tree.
> $ git commit
> fatal: /usr/bin/git-commit cannot be used without a working tree.
> $
> 
> Is $GIT_DIR not meant to be used this way? Does it have a different 
> purpose / use case, or is this just a bug?
> 
> Thanks,
Dan Zwell· Aug 5, 2007, 12:22 UTC · re: Dmitry Kakurin · lore

Re: $GIT_DIR usage

Dmitry Kakurin wrote:
Show 34 quoted lines
> I think you also need to set GIT_WORK_TREE.
> This way Git will know the root of directories that it controls.
> 
> - Dmitry
> ----- Original Message ----- From: "Dan Zwell" <dzwell@gmail.com>
> Newsgroups: gmane.comp.version-control.git
> To: <git@vger.kernel.org>
> Sent: Sunday, 5 August 2007 2:58
> Subject: $GIT_DIR usage
> 
> 
>> Hi, I had a question about $GIT_DIR. That is to say, it doesn't seem 
>> to work. I am using Git 1.5.2.4. See the following: (all the commands 
>> I tried besides "git-init" failed).
>>
>> $ export GIT_DIR="`pwd`/.git_public"
>> $ git init
>> warning: templates not found /usr/share//git-core/templates/
>> Initialized empty Git repository in /home/user/temp/.git_public/
>> $ echo > new_file
>> $ git add new_file
>> fatal: add must be run in a work tree
>> $ git commit -a
>> fatal: /usr/bin/git-commit cannot be used without a working tree.
>> $ git commit
>> fatal: /usr/bin/git-commit cannot be used without a working tree.
>> $
>>
>> Is $GIT_DIR not meant to be used this way? Does it have a different 
>> purpose / use case, or is this just a bug?
>>
>> Thanks,
>> Dan
> 

Thank you. I also had to upgrade Git to the as-yet unreleased version (this variable doesn't exist in the current stable release), but what you said makes sense and seems like it should work.

Dan
Johannes Schindelin· Aug 5, 2007, 12:33 UTC · re: Dan Zwell · lore

Re: $GIT_DIR usage

Hi,
On Sun, 5 Aug 2007, Dan Zwell wrote:
> $ export GIT_DIR="`pwd`/.git_public"
> $ git init
> warning: templates not found /usr/share//git-core/templates/
> Initialized empty Git repository in /home/user/temp/.git_public/

I think that you implicitly created a bare repository with that. Just check if "git config core.bare" returns true.

If so, you need to change that in order to have a working tree.

Hth, Dscho

Dan Zwell· Aug 5, 2007, 13:02 UTC · re: Johannes Schindelin · lore

Re: $GIT_DIR usage

Johannes Schindelin wrote:
Show 18 quoted lines
> Hi,
> 
> On Sun, 5 Aug 2007, Dan Zwell wrote:
> 
>> $ export GIT_DIR="`pwd`/.git_public"
>> $ git init
>> warning: templates not found /usr/share//git-core/templates/
>> Initialized empty Git repository in /home/user/temp/.git_public/
> 
> I think that you implicitly created a bare repository with that.  Just 
> check if "git config core.bare" returns true.
> 
> If so, you need to change that in order to have a working tree.
> 
> Hth,
> Dscho
> 
> 

You are exactly right, I accidentally created a bare repository. I can do 2 things: I can change core.bare to true, or I can create .git in the normal way, then move rename it. Both things still have the problem of git not knowing where the working directory is. Is the only way to fix this in 1.5.2.4, or is my only option to upgrade?

Thanks, Dan

Johannes Schindelin· Aug 5, 2007, 13:41 UTC · re: Dan Zwell · lore

Re: $GIT_DIR usage

Hi,
On Sun, 5 Aug 2007, Dan Zwell wrote:
> I can do 2 things: I can change core.bare to true, or I can create .git 
> in the normal way, then move rename it. Both things still have the 
> problem of git not knowing where the working directory is. Is the only 
> way to fix this in 1.5.2.4, or is my only option to upgrade?
I really have to ask now: why is ./.git/ not an appropriate name?

Ciao, Dscho

← back to recent threads