Thread (7 messages) flat view 7 messages, 3 authors, 2021-01-04

Re: git-dir requires work-tree; documentation improvements for working directory

From: Felipe Contreras <hidden>
Date: 2021-01-02 22:03:01

Yaroslav Nikitenko wrote:
2021-01-02 22:12 GMT+03:00, Felipe Contreras [off-list ref]:
quoted
Yaroslav Nikitenko wrote:
quoted
I use git to manage my dotfiles with this command:

    git --git-dir=/home/yaroslav/.cfg/ --work-tree=/home/yaroslav
I do precisely the same thing.
quoted
When reading documentation, I noticed two issues.

1) The command doesn't work without --work-tree (even from the top
level directory, which is my home directory).

    [~]$ git --git-dir=/home/yaroslav/.cfg/ status
    fatal: this operation must be run in a work tree
That's weird. It works fine here (although I don't see why I would want
that).
BTW, how do you do that in your case?
I have an alias:

  alias config='git --git-dir=$HOME/.config/dotfiles/.git/ --work-tree=$HOME'

So, when I'm in my $HOME, I can do:

  config status
quoted
If you remove all your configuration does it still fail?
It starts to work when I remove my .cfg/config. I've no idea why it
happens. Here is its contents:

$ more .cfg/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = true
That's the difference: my core.bare is false.

I do have a checked out work-tree because that's the only way I could
get some commands to work, for example `git rebase`, even though I don't
use that work-tree.

I'm not sure if it makes sense to not assume '.' is the work-tree when
'core.bare=true', but I think it does make sense, so maybe just turn
that off.

Cheers.

-- 
Felipe Contreras
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help