webentwicklung-frage-antwort-db.com.de

Forking von GitHub nach Bitbucket

Ich arbeite an einem Projekt basierend auf CakePHP, das auf GitHub gehostet wird. Mein Projekt wird gehostet auf Bitbucket. Beide benutzen git . Grundsätzlich würde ich gerne eine 'Fork' erstellen (ich weiß nicht, ob ich die richtigen Begriffe verwende, da ich neu in git bin ) von CakePHP in meinem Bitbucket-Repository, um die Updates zu erhalten, ohne dass das gesamte CakePHP Zip/tar heruntergeladen und der Ordner ersetzt werden muss.

150
entropid

Es ist heute nicht möglich, eine "Pull-Anfrage" über verschiedene Websites zu senden. Ich habe eine Feature-Anfrage dazu im Bitbucket Issue Tracker hinzugefügt: # 3288 . Ich schlage vor, dass Sie sich selbst als Follower hinzufügen, wenn Sie dies verfolgen möchten.

Sie können den Quellcode jedoch weiterhin von GitHub nach Bitbucket verschieben, ohne Zip-Dateien oder Tarballs herunterladen zu müssen. Sie erstellen einen Klon von GitHub und Push to Bitbucket:

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

Ich erschuf mg/cakephp zuerst als leeres Git-Repository in Bitbucket. Auf diese Weise können Sie Changesets von GitHub nach Bitbucket verschieben/ziehen.

139
Martin Geisler

Der folgende Workflow fügt das Github-Repository als neue Remote mit dem Namen sync und die Bitbucket-Remote als Origin hinzu. Es wird auch ein Zweig namens github hinzugefügt, um das Github-Repository zu verfolgen, und ein Zweig namens master, um das Bitbucket-Repository zu verfolgen. Es wird davon ausgegangen, dass Sie ein Bitbucket-Repository mit dem Namen "myrepository" haben, das leer ist.

Setup-Fernbedienungen

# 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

Zweige einrichten

# 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

Jetzt sollte der lokale Zweig github den Zweig master des Github-Repos verfolgen. Außerdem sollte der lokale Zweig master das Bitbucket-Repository nachverfolgen (standardmäßig der Zweig master).

Dies macht es einfach, einen Pull für den Zweig github auszuführen und diese Änderungen dann in den Zweig master einzufügen (Rebase wird jedoch gegenüber Merge bevorzugt). Anschließend können Sie den Zweig master verschieben. Zweig (wird es zu Bitbucket schieben).

75
aleemb

Wenn Sie Ihr Repo auf dem neuesten Stand halten möchten, verwenden Sie zwei Fernbedienungen: Github (upstream) und 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

So rufen Sie Updates für CakePHP von Github ab:

git pull upstream master

So verschieben Sie Ihre Codeänderungen in Bitbucket:

git Push Origin master
28
Zubin

Wenn Sie ein neues Repository in BitBucket erstellen, klicken Sie oben rechts auf die Schaltfläche Import repository. Geben Sie die https-URL ein, die Sie gefunden haben, wenn Sie in Github auf Clone or download Für das zu teilende Repository klicken.

Geben Sie Ihrem Repository einen Namen, konfigurieren Sie Ihre Datenschutzeinstellungen und los geht's!

15
shmuli

Ich nehme an, Sie möchten einfach das Repository mit Ihrem Projekt herunterladen ... und Sie werden NICHT das cakePHP beisteuern, richtig?

in diesem Fall müssen Sie Ihrem Repo lediglich einen externen Verweis hinzufügen.

SVN: externe Äquivalente in GIT?

Und später, auch wenn Sie zu cakePHP beitragen möchten, können Sie dies einfach beim ursprünglichen Repo tun.

0
gcb