How to detach the local git repository from its working directory?

Is this feasible?

I would like to have the .git directory on another drive than the checkout directory.
I could not find a way to detach both.

  • Trouble unstaging, deleting even untracking a file
  • How to use Git properly when you want to create X projects based on one clean project?
  • git svn workflow - feature branches and merge
  • How to get Maven release to clone git submodules?
  • Scripting languages supported for Git hooks
  • How can I find all the commits that have more than one parent in a Git repository?
  • The reason is: there is an exchange area on a very slow network drive and limited space and this is a real nightmare with timeouts. At least the repository operations (synchronization with a svn repository) could then be done fast enough to avoid the timeouts and file copy can be done afterwards on checkout with the poor performance. I could not find any way to cope with this situation (which is out of my control)

    I would not like to but if there is no better suggestion I would replace it by a local git repository and rsync’ing the checkout dir in both directions to and from the slow drive.

    I bet you have a better idea!

  • Once again: fast-forward error
  • Gitolite git clone requires ssh password
  • Deploy git branches
  • Team City build failing almost as soon as git checkout starts with java.lang.NullPointerException
  • git log --follow, show all commits including merges
  • How to get conflicts before merge with JGit?
  • 2 Solutions collect form web for “How to detach the local git repository from its working directory?”

    You can set the GIT_DIR environment variable:

    If the $GIT_DIR environment variable is set then it specifies a path to use instead of ./.git for the base of the repository.

    If setting an environment variable is infeasible for any reason, you can use the --git-dir option with any git command:


    Set the path to the repository. This can also be controlled by setting the GIT_DIR environment variable. It can be an absolute path or relative path to current working directory.

    I’d really suggest keeping your entire repo on your preferred drive. You can then put a bare repo on the beyond-your-control drive, and push to it. This is the best way to minimize your interactions with the bad storage.

    If for some reason you must split a repo across drives, why not just create the repo on one drive, move the .git directory to the other drive, then symlink .git in your repo to the relocated .git directory.

    Git Baby is a git and github fan, let's start git clone.