从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做出贡献,你也可以在原始回购的时候这么做。