Change Git repository directory location.

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.


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.


If you are using GitHub Desktop, then just do the following steps:

  1. Close GitHub Desktop and all other applications with open files to your current directory path.
  2. Move the whole directory as mentioned above to the new directory location.
  3. 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.

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.