How to move/ separate the .git folder out of your working tree
From How to move/ separate the .git folder out of your working tree – rakhesh.com
How to move/ separate the .git folder out of your working tree
This is common knowledge now but I’d like to make a post just so I can refer to it from other posts.
By default the .git
folder – which is your Git repository – is stored in the same folder as your other files (the “working tree”). But it is possible to separate it from the working tree if you so desire.
Two things are needed in this case: (1) the working tree must have some way of knowing where the Git repository is located, and (2) the Git repository must know where its working tree is.
The easy way to do this is to clone
or init
a repository with the --separate-git-dir /path/to/some/dir
switch. For example:
The working directory “Test” only contains a file called .git
(instead of a directory called .git
). This file contains a pointer to where the actual repository is.
And if you go to that folder and check the config file you will see it points to the working directory (note the core.worktree
value):
And this brings us to the non-easy way of separating the working tree from the repository. If you have an existing repository, simply move the .git
folder to wherever you want and add a .git
file as above and modify the config
file. And if you are cloning a repository, after cloning do as above. :)
A neat thing about git init
is that you can run it with the --separate-git-dir
switch on an existing working tree whose repository is within it, and it will move the repository out to wherever you specify and do the linking:
Useful stuff to be aware of.
Comments
Post a Comment