|
|
@@ -0,0 +1,59 @@ |
|
|
#!/bin/bash |
|
|
# Sometimes you need to move your existing git repository |
|
|
# to a new remote repository (/new remote origin). |
|
|
# Here are a simple and quick steps that does exactly this. |
|
|
# |
|
|
|
|
|
### OPTION 1 ########################################################################################### |
|
|
# Let's assume we call "old repo" the repository you wish |
|
|
# to move, and "new repo" the one you wish to move to. |
|
|
# |
|
|
### Step 1. Make sure you have a local copy of all "old repo" |
|
|
### branches and tags. |
|
|
# Fetch all of the remote branches and tags: |
|
|
git fetch origin |
|
|
|
|
|
# View all "old repo" local and remote branches: |
|
|
git branch -a |
|
|
|
|
|
# If some of the remotes/ branches doesn't have a local copy, |
|
|
# checkout to create a local copy of the missing ones: |
|
|
git checkout -b <branch> origin/<branch> |
|
|
|
|
|
# Now we have to have all remote branches locally. |
|
|
|
|
|
|
|
|
### Step 2. Add a "new repo" as a new remote origin: |
|
|
git remote add new-origin [email protected]:user/repo.git |
|
|
|
|
|
|
|
|
### Step 3. Push all local branches and tags to a "new repo". |
|
|
# Push all local branches (note we're pushing to new-origin): |
|
|
git push --all new-origin |
|
|
|
|
|
# Push all tags: |
|
|
git push --tags new-origin |
|
|
|
|
|
|
|
|
### Step 4. Remove "old repo" origin and its dependencies. |
|
|
# View existing remotes (you'll see 2 remotes for both fetch and push) |
|
|
git remote -v |
|
|
|
|
|
# Remove "old repo" remote: |
|
|
git remote rm origin |
|
|
|
|
|
# Rename "new repo" remote into just 'origin': |
|
|
git remote rename new-origin origin |
|
|
|
|
|
|
|
|
### Done! Now your local git repo is connected to "new repo" remote |
|
|
### which has all the branches, tags and commits history. |
|
|
|
|
|
|
|
|
### OPTION 2 ########################################################################################### |
|
|
|
|
|
git clone --mirror <url_of_old_repo> |
|
|
cd <name_of_old_repo> |
|
|
git remote add new-origin <url_of_new_repo> |
|
|
git push new-origin --mirror |
|
|
(If you have multiple branches, you'll want to add git fetch before add the new origin) |