如何从GitHub分叉到Bitbucket?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (34)

我正在开发基于CakePHP的项目,该项目位于GitHub上我的项目是在Bitbucket上托管的。他们都使用git。基本上我想在我的Bitbucket存储库中创建一个'fork'(我不知道是否使用了正确的术语,因为我是git新手),以便能够获取更新无需下载所有的CakePHP zip / tar并替换文件夹,然后提交并推送,但可能使用“合并”(?)。

提问于
用户回答回答于

我在Bitbucket问题跟踪器中为此添加了一项功能请求:#3288。如果你想跟踪这个,我建议你把自己添加为追随者。

但是,你仍然可以将源代码从GitHub移动到Bitbucket,而无需下载任何zip文件或tarball。你从GitHub创建一个克隆并推送到Bitbucket:

$ git clone https://github.com/cakephp/cakephp
$ git push git@bitbucket.org:mg/cakephp.git master
用户回答回答于

下面的工作流程将github存储库添加为一个新的远程调用sync和bitbucket remote origin。它还增加了一个叫做github追踪github存储库的分支和一个叫做master跟踪bitbucket存储库的分支。它假定你有一个名为“myrepository”的bitbucket存储库,它是空的。

Setup remotes

# setup local repo
mkdir myrepository
cd myrepository
git init

# add  bitbucket remote as "origin"
git remote add origin ssh://git@bitbucket.org/aleemb/myrepository.git

# add github remote as "sync"
git remote add sync https://github.com/aleemb/laravel.git

# verify remotes
git remote -v
# should show fetch/push for "origin" and "sync" remotes

Setup branches

# first pull from github using the "sync" remote
git pull sync

# setup local "github" branch to track "sync" remote's "master" branch
git branch --track github sync/master

# switch to the new branch
git checkout github

# create new master branched out of github branch
git checkout -b master

# push local "master" branch to "origin" remote (bitbucket)
git push -u origin master

现在你应该有本地github分支跟踪github repo的master分支。你应该有本地master分支跟踪bitbucket回购(master默认分支)。

这使得在github分支上执行pull操作变得容易,然后将这些更改合并到master分支上(rebase优先于merge),然后可以推送master分支(将其推送到bitbucket)。

扫码关注云+社区