假设我在git.fedorahosted.org上有一个存储库,我想将其克隆到我在github的帐户中,以拥有自己的游乐场,而不是在fedorahosted上更“官方”的回购。 最初复制的步骤是什么? 在github中有一个漂亮的“fork”按钮,但我不能使用这个明显的原因。

我如何跟踪fedorahosting回购到github的变化?


当前回答

将本地存储库链接到不同的远程存储库

删除与远程存储库的所有连接: 在项目文件夹内:

删除本地存储库中的所有数据 git状态(我必须说它没有链接到任何东西,有点像一个错误)

链接到一个新的远程存储库

git init启动本地存储库 Git远程添加原始urlrepository。链接到远程存储库 git remote -v确认它链接到远程存储库

3-向本地存储库添加更改并推送到远程存储库

Git pull或Git pull origin master——allow-unrelated-histories(如果本地和远程repo中的Git历史不同)。 git添加。 git commit -m" Message " Git push -u origin master

就是这样!

其他回答

要将你现有的回购变为不同的,你需要:

首先克隆原始的回购。 Git克隆https://git.fedorahosted.org/cgit/rhq/rhq.git 将克隆的源代码推到您的新存储库: cd rhq Git推送https://github.com/user/example master:master

您可以将master:master改为source:destination分支。


如果你想要推送特定的提交(分支),那么做:

On the original repo, create and checkout a new branch: git checkout -b new_branch Choose and reset to the point which you want to start with: git log # Find the interesting hash git reset 4b62bdc9087bf33cc01d0462bf16bbf396369c81 --hard Alternatively select the commit by git cherry-pick to append into existing HEAD. Then push to your new repo: git push https://github.com/user/example new_branch:master If you're rebasing, use -f for force push (not recommended). Run git reflog to see history of changes.

首先,在Github上创建你的回购。然后将目录更改为签出的源存储库—假设您想要推送主分支。你需要执行5个简单的步骤:

git remote add origin2 https://github.com/user/example.git
git checkout master
git pull
git push origin2 master
git remote remove origin2

这将在本地回购和新的远程之间创建链接,签出并拉出源分支(以确保它有最新的分支),然后推入当前分支,最后从远程断开本地回购的链接。

在此之后,您的本地回购将是完整的,您可以像以前一样使用它。如果需要推送多个分支,可以根据需要多次重复签出-拉-推步骤,只需相应地更改分支名称即可。

将本地存储库链接到不同的远程存储库

删除与远程存储库的所有连接: 在项目文件夹内:

删除本地存储库中的所有数据 git状态(我必须说它没有链接到任何东西,有点像一个错误)

链接到一个新的远程存储库

git init启动本地存储库 Git远程添加原始urlrepository。链接到远程存储库 git remote -v确认它链接到远程存储库

3-向本地存储库添加更改并推送到远程存储库

Git pull或Git pull origin master——allow-unrelated-histories(如果本地和远程repo中的Git历史不同)。 git添加。 git commit -m" Message " Git push -u origin master

就是这样!

用下面的命令改变GIT的repo URL,简单地指向新的repo:

git remote set-url origin [new repo URL]

例如:git remote set-url origin git@bitbucket.org:Batman/batmanRepoName.git

现在,推和拉与新的回购挂钩。

然后像这样正常地推:

git push -u origin master

这个问题的答案已经被删除了,但有一个有用的链接:https://help.github.com/articles/duplicating-a-repository

重点是

0. create the new empty repository (say, on github)
1. make a bare clone of the repository in some temporary location
2. change to the temporary location
3. perform a mirror-push to the new repository
4. change to another location and delete the temporary location

OP的例子:

在本地机器上

$ cd $HOME
$ git clone --bare https://git.fedorahosted.org/the/path/to/my_repo.git
$ cd my_repo.git
$ git push --mirror https://github.com/my_username/my_repo.git
$ cd ..
$ rm -rf my_repo.git