Git: Backing Up Your Repo
I'm working on a project that is quickly becoming so large I feel the need to back it up. Although I trust Github with all of my work, I'd hate to not have a backup incase something goes wrong. For this reason, I use Bitbucket as a backup.
Bitbucket is nice because they offer free, private git
hosting.
Amazon CodeCommit is another great choice but I haven't tested it yet.
After you create your account and repo, below are the commands I use to save to different git repositories.
Getting Started
I'm assuming that you already have a repo both on Github and your local computer and all you're trying to do is back up your existing repo on Bitbucket.
I'm also assuming that you want want to learn how to do this using terminal. If you'd prefer to use a web interface, I suggest reading this article on Bitbucket.
Setting Your Remote URL
Here's how to change the remote url using set-url
.
git remote set-url origin https://domain.com/your/remote/url
How to Add Your Second Repo Host
If at any point, you want to add yet another backup, then here is how to do it.
First check the status of your current remote repositories.
git remote -v
The next step is to add the URL of the git repo. URL's come in one of two paths: ssh
or https
.
git remote add set-url alias_name_of_repository https://domain.com/your/remote/url
Alt: If you only want to change the --push
path
git remote add set-url alias_name_of_repository --push https://domain.com/your/remote/url
Double check your work.
git remote -v
Pushing Data to Your Second Host
git push -u alias_name_of_repository master
Pushing Data to Your Primary Host
git push origin master
Pulling From Multiple Hosts
If you want to fetch the master branch from
git remote update
Pulling From a Single Host
Fetch the Master Branch from Your Second Host and Pull it into your current Head.
git pull alias_name_of_repository master
Deleting a Second Host
This will --delete
a remote URL that was set to --push
to a remote
repo.
git remote set-url alias_name_of_repository --push --delete https://domain.com/your/remote/url
More
-
Excellent explainer
-
If you want to learn how to publish to two remote repost at the same time, vist this StackOverflow answer