I want to work with Git repository, but working tree should be remote. For example: if I have my project stored inside of ~/project
and project.git
stored inside of ~/git/project.git
.
What I've changed working tree via config:
worktree=/Users/myuser/project
And I'm able to commit and view diff, but when I've tried to do git stash
, I got error:
fatal: /usr/libexec/git-core/git-stash cannot be used without a working tree.
How to store .git
directory far from working tree?
And why I'm getting this error?
git config --get core.worktree
returns correct working directory....
The following seems to work, adjust to your needs:
mkdir git
mkdir work
git --git-dir git/test --work-tree work/test init
mkdir work/test
echo -n foo > work/test/foo.txt
git --git-dir git/test status
git --git-dir git/test add foo.txt
git --git-dir git/test commit -m 'commit 1'
EDIT: Notice that you don't have to specify --work-tree
after the repo has been initialized since that value is stored in git/test/config
.
You can also cd into work/test and commit from there:
cd work/test
echo -n bar > bar.txt
git --git-dir ../../git/test status
git --git-dir ../../git/test add .
git --git-dir ../../git/test commit -m 'commit 2'
Then use an absolute path for --git-dir
or set GIT_DIR
.