Skip to contentSkip to conversation

$GIT_DIR usage

DISCUSSION Dan Zwell 3 participants 6 messages Jun 15, 2016 – Aug 11, 2016

lore
Share & tools
lore

Dan Zwell

author
#0 lore raw

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

#1 lore raw

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" <[email protected]>
Newsgroups: gmane.comp.version-control.git
To: <[email protected]>
Sent: Sunday, 5 August 2007 2:58
Subject: $GIT_DIR usage

Quoted 18 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,

author
#2 lore raw
Quoted 31 lines · Dmitry Kakurin

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" <[email protected]>
Newsgroups: gmane.comp.version-control.git
To: <[email protected]>
Sent: Sunday, 5 August 2007 2:58
Subject: $GIT_DIR usage

Quoted 19 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

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

#3 lore raw
In reply to Dan Zwell

Hi,

Quoted 4 lines · Dan Zwell
$ 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

author
#4 lore raw
Quoted 9 lines · Johannes Schindelin

Hi,

Quoted 4 lines · Dan Zwell
$ 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/
Quoted 8 lines

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

#5 lore raw

Hi,

Quoted 4 lines · Dan Zwell

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