我正在基于 CakePHP 的项目上工作,该项目托管在 GitHub 上。而我的项目则托管在 Bitbucket 上。两者都使用 git。基本上我想创建一个“分支”(我不知道是否使用了正确的术语,因为我对 git 很陌生),将 CakePHP 分支到我的 Bitbucket 存储库中,以便能够在不需要下载所有 CakePHP zip/tar 文件并替换文件夹的情况下获取更新,然后提交和推送,但也许需要进行“合并”(?)。
我正在基于 CakePHP 的项目上工作,该项目托管在 GitHub 上。而我的项目则托管在 Bitbucket 上。两者都使用 git。基本上我想创建一个“分支”(我不知道是否使用了正确的术语,因为我对 git 很陌生),将 CakePHP 分支到我的 Bitbucket 存储库中,以便能够在不需要下载所有 CakePHP zip/tar 文件并替换文件夹的情况下获取更新,然后提交和推送,但也许需要进行“合并”(?)。
$ git clone https://github.com/cakephp/cakephp
$ cd cakephp
$ git push git@bitbucket.org:mg/cakephp.git master
我先在Bitbucket中创建了一个空的Git存储库mg/cakephp
,这样你就可以将GitHub上的更改推送/拉取到Bitbucket上。
cd cakephp
。对于有经验的人来说这很显然,但是对于新手来说可能会想知道为什么它不起作用。 - aaronbartellsync
的新远程仓库,并将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 仓库的 master
分支。同时,你应该有本地的 master
分支跟踪 bitbucket 仓库(默认为 master
分支)。github
分支进行拉取,然后将这些更改合并到 master
分支上(优先使用变基而非合并),最后你可以推送 master
分支(将其推送到 bitbucket)。git fetch
和 git branch --track github sync/master
。 - Beaudinn Grevegit checkout github
和git checkout -b master
。这样你就会得到这些分支(git branch -a
):github、master、remotes/origin/master、remotes/sync/master。 - Klemens Zleptnigupstream
)和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:
要将您的代码更改推送到Bitbucket:
git push origin master
git
命令中的意思是 git clone https://mybitibucket/cakephp/cakephp
,对吧?这是正确的做法... - ribamargit push --all --mirror origin
。已更新答案。 - Zubin致命错误:--all 和 --mirror 不兼容
另外:
git pull upstream master
会抛出一个致命错误。
致命错误:找不到远程引用master
- Joel Karunungan--mirror
标签。回答已更新。 - Zubincakephp
添加为子模块? - DavidKanes{{link1:请注意截图右上角的导入存储库链接}}
我猜你只是想轻松地下载包含你的项目的存储库...并且你不会为cakePHP做出贡献,对吗?
如果是这样,你只需要向你的repo添加一个外部引用。
稍后,即使你想为cakePHP做出贡献,你也可以在原始repo上轻松地完成。