Change Git repository directory location.
Solution 1:
Simply copy the entire working directory contents (including the hidden .git
directory). This will move the entire working directory to the new directory and will not affect the remote repository on GitHub.
If you are using GitHub for Windows, you may move the repository using the method as above. However, when you click on the repository in the application it will be unable to find it. To resolve this simply click on the blue circle with the !, select Find It and then browse to the new directory.
Solution 2:
I'm not sure of the question, so here are two answers :
If you want to move your repository :
Simply copy the whole repository (with its .git
directory).
There is no absolute path in the .git
structure and nothing preventing it to be moved so you have nothing to do after the move. All the links to github (see in .git/config
) will work as before.
If you want to move files inside the repository :
Simply move the files. Then add the changes listed in git status
. The next commit
will do the necessary. You'll be happy to learn that no file will be duplicated : moving a file in git is almost costless.
Solution 3:
If you are using GitHub Desktop
, then just do the following steps:
- Close
GitHub Desktop
and all other applications with open files to your current directory path. - Move the whole directory as mentioned above to the new directory location.
- Open
GitHub Desktop
and click on the blue (!) "repository not found" icon. Then a dialog will open and you will see a "Locate..." button which will open a popup allowing you to direct its path to a new location.
Solution 4:
Although the previous answers all seem to say that you can just move the directory and there are no absolute paths in the .git structure. I found this to be untrue when using git from Cygwin.
When I moved my git repo (in fact I restored it from a backup, but to a different drive as my drive structure changed on my new system). I got an error message like
fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory
I used grep to find that in my .git/config file in the [core] section is a worktree variable which holds the absolute path of my git repo. Changing this fixed the problem for me.
Solution 5:
While the question involves Git for Windows, this seems to be the top result even when searching for Visual Studio Tools For Git (extension in VS 2012, native support in VS 2013).
Using the solutions above as a guide I determined that Visual Studio Git Tools makes moving repos (or even entire directory structure for all repos) locally very easy.
1) Close Visual Studio. 2) Move the Repo folder(s) to new location. 3) Open Visual Studio. Open Team Explorer. Switch to "Connect" view (plug icon at top). 3a) If Repos still show old path, click Refresh to force an update. 4) Repos that were moved locally should no longer be showing in "Local Git Repositories". 5) Click Add (not new or clone) and select the repo folder to add.
In step 5 you really are just providing a search path and the search automatically includes all subfolders. If you have multiple repos organized under a single root (independent repos just having the same parent folder) then selecting the parent will include all repos found below that.
Example: E:\Repos\RepoA E:\Repos\RepoB E:\Repos\RepoC
In Visual Studio Team Explorer [Add] > "E:\Repos\" > [Add] will return all three to the Local Repositories.