从GitHub分叉到Bitbucket
我正在开发一个基于CakePHP的项目,该项目位于GitHub上 。 我的项目是托pipe在Bitbucket上 。 他们两个都使用git 。 基本上我想在我的Bitbucket存储库中创build一个CakePHP的“fork”(我不知道是否使用了正确的术语,因为我是git的新手),以便能够获取更新而不需要下载所有的CakePHP zip / tar并replace文件夹,然后进行提交和推送,但可能使用“合并”(?)。
谢谢!
现在不可能在不同的网站上发送“拉取请求”。 我已经在Bitbucket问题跟踪器中为此添加了一个function请求: #3288 。 如果你想跟踪这个,我build议你把自己添加为追随者。
但是,您仍然可以将源代码从GitHub移动到Bitbucket,而不必下载任何zip文件或tarball。 你从GitHub创build一个克隆并推送到Bitbucket:
$ git clone https://github.com/cakephp/cakephp $ git push git@bitbucket.org:mg/cakephp.git master
我首先在Bitbucket中创build了mg/cakephp
作为一个空的Git仓库。 这样,您可以将变更集从GitHub推送到Bitbucket。
下面的工作stream程将github存储库添加为一个名为sync
新远程程序,并将bitbucket remote作为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回购(默认master
分支)。
这使得在github
分支上执行pull操作变得很容易,然后将这些改变合并到master
分支(rebase优先于merge),然后你可以推动master
分支(将它推到bitbucket)。
如果你想保持你的回购更新,使用两个远程:Github( upstream
)和Bitbucket( origin
)是这样的:
# Clone original CakePHP source code from Github git clone 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
从Github中将更新提交给CakePHP:
git pull upstream master
要将您的代码更改推送到Bitbucket:
git push origin master
当创build一个新的存储库时,BitBucket现在会给你一个从其他站点克隆一个目录的选项。 这非常简单:input你想克隆的目录,给它一个名字,configuration你的隐私设置,然后你去!
我猜你只是想轻松地下载与您的项目的知识库…并且你将不会贡献cakePHP,正确的?
如果是这样,你只需要添加一个外部引用到你的回购。
SVN:GIT中的外部等价物?
而后来,即使你想为CakePHP做出贡献,你也可以在原始回购的时候这么做。