Ich arbeite an einem Projekt, das auf CakePHP basiert und auf GitHub gehostet wird . Mein Projekt wird auf Bitbucket gehostet . Beide benutzen Git . Grundsätzlich möchte ich in meinem Bitbucket-Repository eine 'Gabel' (ich weiß nicht, ob ich die richtigen Begriffe verwende, da ich neu bei git bin ) von CakePHP erstellen, um die Updates erhalten zu können ohne dass Sie alle CakePHP zip / tar herunterladen und den Ordner ersetzen müssen, dann festschreiben und pushen müssen, aber möglicherweise mit einem 'Merge' (?).
160
Antworten:
Es ist heute nicht möglich, "Pull-Anfragen" über verschiedene Sites zu senden. Ich habe im Bitbucket Issue Tracker eine Feature-Anfrage dazu hinzugefügt: # 3288 . Ich schlage vor, Sie fügen sich als Follower hinzu, wenn Sie dies verfolgen möchten.
Sie können die Quelle jedoch weiterhin von GitHub nach Bitbucket verschieben, ohne Zip-Dateien oder Tarballs herunterladen zu müssen. Sie erstellen einen Klon von GitHub und drücken auf Bitbucket:
Ich habe zuerst
mg/cakephp
als leeres Git-Repository in Bitbucket erstellt. Auf diese Weise können Sie Änderungssätze von GitHub nach Bitbucket verschieben.quelle
cd cakephp
zwischen den beiden Befehlen liegen musste. Natürlich für Nicht-Anfänger, ja, aber Anfänger fragen sich vielleicht, warum es nicht funktioniert.fork
. Zweige und Tags werden NICHT nach BitBucket kopiert.Der folgende Workflow fügt das Github-Repository als eine neu aufgerufene Fernbedienung
sync
und die Bitbucket-Fernbedienung als hinzuorigin
. Außerdem wird ein Zweiggithub
hinzugefügt, der aufgerufen wird , um das Github-Repository zu verfolgen, und ein Zweig, der aufgerufen wirdmaster
, um das Bitbucket-Repository zu verfolgen. Es wird davon ausgegangen, dass Sie ein Bitbucket-Repository namens "myrepository" haben, das leer ist.Fernbedienungen einrichten
Zweige einrichten
Jetzt sollte der lokale
github
Zweig den Zweig des Github-Repos verfolgenmaster
. Und der lokalemaster
Zweig sollte das Bitbucket-Repo verfolgen (master
standardmäßig verzweigen).Dies macht es einfach, am
github
Zweig zu ziehen, diese Änderungen dann auf demmaster
Zweig zusammenzuführen (Rebase wird jedoch dem Zusammenführen vorgezogen), und dann können Sie denmaster
Zweig verschieben (wird auf Bitbucket verschoben).quelle
--set-upstream
veraltet ... Dies funktioniert jedoch, solange Sie dengithub
Zweig erstellen, bevor Sie versuchen, das Upstream-Repo festzulegen.git fetch
undgit branch --track github sync/master
git checkout github
undgit checkout -b master
nach dem Befehl git branch. Sie werden mit diesen Zweigen (git branch -a
) enden: Github, Master, Fernbedienungen / Ursprung / Master, Fernbedienungen / Synchronisierung / MasterWenn Sie Ihr Repo auf dem neuesten Stand halten möchten, verwenden Sie zwei Fernbedienungen: Github (
upstream
) und Bitbucket (origin
) wie folgt :So rufen Sie Updates für CakePHP von Github ab:
So übertragen Sie Ihre Codeänderungen auf Bitbucket:
quelle
git
, oder? Dies ist dergit push --all --mirror origin
. Antwort aktualisiert.fatal: --all and --mirror are incompatible
Außerdem:git pull upstream master
Wirft einen schwerwiegenden Fehler aus.fatal: Couldn't find remote ref master
Klicken Sie beim Erstellen eines neuen Repositorys in BitBucket auf die Schaltfläche
Import repository
oben rechts. Geben Sie die https-URL ein, die Sie gefunden haben, wenn SieClone or download
in Github auf das Repository klicken, das Sie teilen möchten.Geben Sie Ihrem Repository einen Namen, konfigurieren Sie Ihre Datenschutzeinstellungen und los geht's!
quelle
Ich habe festgestellt, dass Bitbucket seit der Antwort von @Martin Geisler eine Funktion zum Importieren von Repositorys von github.com aktiviert hat
Ich konnte ein privates Repo von github.com erfolgreich in ein privates Repo auf bitbucket.org importieren
Hier sind die Schritte :
Beachten Sie den Link zum Import-Repository in der rechten oberen Ecke des Screenshots
quelle
Ich vermute, Sie möchten einfach nur 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: Externes Äquivalent in GIT?
Und später, auch wenn Sie zu cakePHP beitragen möchten, können Sie dies beim ursprünglichen Repo ganz gut tun.
quelle