问题
Has anyone tried or figured out how to import a gitorious repo into github? I already use github and wanted to see if there was a way to pull from a gitorious repo that I wanted to follow into github.
回答1:
How would this be different from the normal method of creating a repository on Github?
- Clone the repository from gitorious
- Create a new repository on github
- Push the repository up to github
Github doesn't care where the repository came from in the first place, it just accepts whatever you push up to it.
回答2:
Immediately after you create a new repository on GitHub, the website gives you 3 elegant personalized instruction sets. The 3 different options are:
- Start working on a fresh new project
- Push an existing Git repository - this is the one you want
- Push an existing SVN repository
If my username was user1 and the new repo was called project1, here is what it would say:
Existing Git Repo?
cd existing_git_repo
git remote add origin git@github.com:user1/project1.git
git push -u origin master
回答3:
The answers already given will just import master - if you want to import the entire repo including all branches, tags, etc, you need to do the following:
- Create a blank github repo
Clone the gitorious repo using the --bare flag - this preserves all branches/tags and doesn't create a working copy:
$ git clone --bare git://gitorious.org/USER/REPO.git
Change directory into the local repo:
$ cd therepo.git
Push the repo to github using the --mirror flag - this copies all branches, tags, history etc.:
$ git push --mirror git@github.com:USER/REPO.git
Remove the local copy - you don't need it anymore and it's not much use for anything
$ cd .. && rm -rf therepo.git
Once you've done that, you can switch any local repos using the git remote rm/add
commands as given above.
回答4:
The previous answers are correct, but here's the step by step process including the missing step of delinking the local copy from Gitorious; without it, you'll get the error fatal: remote origin already exists
when you try to add Github as the new origin.
- Create empty target repo on Github
- Clone repo from Gitorious to local
- Remove Gitorious as origin
- Add Github as new origin
- Push to Github
Commands:
git clone git://gitorious.org/USER/REPO.git
cd REPO
git remote rm origin
git remote add origin https://github.com/USER/REPO.git
git push --mirror https://github.com/USER/REPO.git
You'll obviously need to substitute USER and REPO, and the last two commands are provided for you after step 1 when you create your Github repo.
来源:https://stackoverflow.com/questions/1067010/import-into-github-from-gitorious