Moving a git repo to a second computer?
The git bundle
subcommand is intended to transfer repositorys offline.
On the source machine, execute the following command in your Git workspace:
$ git bundle create --progress myproject.bundle --all
Then transfer the created file myproject.bundle
to the target machine and execute there the following command:
$ git clone myproject.bundle myproject
For more, have a look at the man page of the bundle subcommand.
While working on a project and you are forced to move to a new computer.
- Save files and copy files to new computer
- On new computer, install git and create ssh keys
On each project folder run this
git remote update
For your case, the best way to do it is to copy over the folder (copy, scp, cp, robocopy - whichever) to the new computer and delete the old folder.
I completely disagree with @Pablo Santa Cruz that cloning is the paradigm for what you are doing. No it is not. You are moving a repo to a new computer.
Why I don't like clone for this purpose:
- It creates remote-tracking branches for each branch in the cloned repository. You are moving, and the old repo is defunct.
- Any remote branches and other refs are completely ignored.
- You don't get your hooks if you had any and you might forget that you had them!
- You cannot get "lost" commits etc using git reflog or other means. Might not be a huge issue, especially if the repo acted as a server but something to be aware of.
If you search for ways to backup a git repo, git clone wouldn't be in the top answers. So it shouldn't be used for moving a repo! I also feel that just a git clone
cannot be a proper answer because git clone
has the --mirror
option, which preserves the repo, meaning that a git clone
repo is different from git clone --mirror
repo (apart from being bare, the differences are mostly those I mentioned above). I would do a copy because I know what I get with the copied repo - the same repo!
When to consider git clone:
- It is faster as git does some optimization while cloning
- You might have different git version on the new machine and a copy might make the repo unusable in the other version (not very common nowadays). But actually this can be another pro for copying, since this would inform you that that the new computer has a different git version.
Yes it's enough to copy the data to the other machine. Using git clone is almost the same thing, but it will setup the computer you are cloning from as the remote origin, which might not be what you want.