web-dev-qa-db-ja.com

GitHubからBitbucketへの分岐

CakePHPに基づくプロジェクトに取り組んでいます。これはGitHubでホストされています。 私のプロジェクトBitbucketでホストされています。両方ともgitを使用します。基本的に、CakePHPのgitが初めてなので、「フォーク」(正しい用語を使用しているかどうかわかりません)を作成したいと思います。 Bitbucketリポジトリ。CakePHPのすべてのZip/tarをダウンロードしてフォルダを置き換え、その後コミットしてプッシュする必要なく更新を取得できるようにするために、「マージ」(?)を使用する場合があります。

150
entropid

現在、異なるサイト間で「プルリクエスト」を送信することはできません。 Bitbucket issue trackerにこのための機能リクエストを追加しました: #3288 。これを追跡する場合は、自分をフォロワーとして追加することをお勧めします。

ただし、Zipファイルやtarballをダウンロードしなくても、GitHubからBitbucketにソースを移動できます。 GitHubからクローンを作成し、Bitbucketにプッシュします。

$ git clone https://github.com/cakephp/cakephp
$ cd cakephp
$ git Push [email protected]:mg/cakephp.git master

最初にmg/cakephpをBitbucketの空のGitリポジトリとして作成しました。これにより、チェンジセットをGitHubからBitbucketにプッシュ/プルできます。

139
Martin Geisler

以下のワークフローでは、githubリポジトリをsyncという新しいリモートとして追加し、bitbucketリモートをOriginとして追加します。また、githubリポジトリを追跡するgithubというブランチと、bitbucketリポジトリを追跡するmasterというブランチを追加します。空の「myrepository」と呼ばれるbitbucketリポジトリがあることを前提としています。

リモートのセットアップ

# setup local repo
mkdir myrepository
cd myrepository
git init

# add  bitbucket remote as "Origin"
git remote add Origin ssh://[email protected]/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にプッシュします)。

75
aleemb

リポジトリを最新に保ちたい場合は、次のようにGithub(upstream)とBitbucket(Origin)の2つのリモートを使用します。

# 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
28
Zubin

BitBucketで新しいリポジトリを作成する場合、右上の[Import repository]ボタンをクリックします。フォークするリポジトリのGithubでClone or downloadをクリックしたときに見つかったhttps URLを入力します。

リポジトリに名前を付けて、プライバシー設定を構成します。

15
shmuli

私はあなたがあなたのプロジェクトでリポジトリを簡単にダウンロードしたいだけだと推測しています...そしてあなたは正しいcakePHPに貢献しないでしょうか?

その場合、外部参照をリポジトリに追加するだけです。

SVN:GITでの外部と同等?

後で、cakePHPに貢献したい場合でも、元のリポジトリで問題なく貢献できます。

0
gcb