我正在开发基于 CakePHP 的项目,该项目托管于 GitHub 。 我的项目正在 Bitbucket 上托管。他们都使用 git 。基本上我想在我的Bitbucket存储库中创建一个'fork'(我不知道我是否使用了正确的术语,因为我是 git 的新手)能够获得更新而无需下载所有CakePHP zip / tar并替换文件夹,然后提交并推送,但可能使用'merge'(?)。
答案 0 :(得分:138)
今天不可能在不同的网站上发送“拉取请求”。我在Bitbucket问题跟踪器中添加了一项功能请求:#3288。如果你想追踪这个,我建议你把自己添加为追随者。
但是,您仍然可以将源从GitHub移动到Bitbucket而无需下载任何zip文件或tarball。你从GitHub克隆并推送到Bitbucket:
$ git clone https://github.com/cakephp/cakephp
$ cd cakephp
$ git push git@bitbucket.org:mg/cakephp.git master
我首先在Bitbucket中创建了mg/cakephp
作为空的Git存储库。这样你可以将变换集从GitHub推送/拉到Bitbucket。
答案 1 :(得分:74)
下面的工作流程将github存储库添加为名为sync
的新远程数据库,将bitbucket远程数据库添加为origin
。它还添加了一个名为github
的分支来跟踪github存储库和一个名为master
的分支来跟踪bitbucket存储库。它假设你有一个名为“myrepository”的bitbucket存储库是空的。
# 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
# 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 repo(默认情况下为master
分支)。
这样可以轻松地对github
分支进行拉取,然后将这些更改合并到master
分支(虽然优先于合并的rebase),然后您可以推送master
分支(将它推到bitbucket)。
答案 2 :(得分:28)
如果你想让你的回购更新,请使用两个遥控器:Github(upstream
)和Bitbucket(origin
),如下所示:
# Clone original CakePHP source code from Github
git clone --mirror https://github.com/cakephp/cakephp
cd cakephp
# Rename remote from `origin` to `upstream`
git remote rename origin upstream
# Add your Bitbucket repo (this is where your code will be pushed)
git remote add origin https://bitbucket/your/repo.git
# Push everything to Bitbucket
git push --mirror origin
从Github获取CakePHP的更新:
git pull upstream master
将代码更改推送到Bitbucket:
git push origin master
答案 3 :(得分:15)
在BitBucket中创建新存储库时,单击右上角的按钮Import repository
。输入在Github中单击Clone or download
找到要存储的存储库时找到的https网址。
为您的存储库命名,配置您的隐私设置,然后就可以了!
答案 4 :(得分:1)
我注意到,自@Martin Geisler回答以来, Bitbucket已启用一项功能,可从github.com导入存储库
我能够成功地从github.com导入私有仓库到bitbucket.org上的私有仓库
以下是步骤:
Note the import repository link on right top corner of the screenshot
答案 5 :(得分:0)
我猜你只是想用你的项目轻松下载存储库......而且你不会贡献cakePHP,对吗?
如果是这样,您只需要为您的仓库添加外部参考。
SVN:externals equivalent in GIT?
之后,即使你想为cakePHP做贡献,你也可以在原版回购中做到这一点。