Search code examples
gitgit-pushgit-pullgit-commit

How do I use the --work-tree option with git? I keep getting an error


I have a normal repo where there is a working tree and a .git folder in the same directory as the working tree.

I'm trying to run a git command from outside this location with the command

git --git-dir=/path/to/repo/.git --work-tree=/path/to/repo pull /some/other/repo master

but I keep getting the error fatal: /usr/libexec/git-core/git-pull cannot be used without a working tree..

What am I doing wrong?


Solution

  • This is a bug in earlier versions of Git. This problem should go away once you upgrade to 1.7.7.2 or later.

    From the commit that fixed the bug:

    You can't currently run git-pull or git-rebase from outside
    of the work tree, even with GIT_WORK_TREE set, due to an
    overeager require_work_tree function. Commit e2eb527
    documents this problem and provides the infrastructure for a
    fix, but left it to later commits to audit and update
    individual scripts.
    

    See also commit e2eb527.