Ich habe ein auf GitHub gehostetes Projekt, das jemand gespalten hat. Auf ihrer Gabel haben sie einen neuen Zweig "foo" erstellt und einige Änderungen vorgenommen. Wie ziehe ich ihr "foo" in einen neuen Zweig, der in meinem Repo auch "foo" heißt?
Ich verstehe, dass sie mir eine Pull-Anfrage senden könnten, aber ich möchte diesen Prozess selbst initiieren.
Nehmen Sie Folgendes an:
- Da sie mein Projekt gespalten haben, teilen unsere beiden Repos dieselbe "Geschichte".
- Obwohl GitHub zeigt, dass ihr Projekt von meinem gespalten wurde, enthält mein lokales Repository keine Verweise auf das Projekt dieser Person. Muss ich ihre als Fernbedienung hinzufügen?
- Ich habe noch keinen Zweig namens "foo" - ich weiß nicht, ob ich diesen zuerst manuell erstellen muss.
- Ich möchte auf jeden Fall, dass dies in einen separaten Zweig gezogen wird und nicht mein Meister.
quelle
git://
URL von der GitHub-Repository-Seite der anderen Person anstelle von verwenden sollte//path/to/coworkers/repo.git
. (Das zu beschreiben hat meine Antwort zu langsam gemacht;))Nein, Sie müssen sie nicht als Fernbedienung hinzufügen. Das wäre umständlich und jedes Mal schmerzhaft.
Ergreifen ihrer Verpflichtungen:
Dadurch wird ein lokaler Zweig mit dem Namen erstellt,
ournameforbranch
der genau dem entspricht, wastheirbranch
für sie vorgesehen war. Für das Fragenbeispiel wäre das letzte Argumentfoo:foo
.Beachten Sie, dass ein
:ournameforbranch
Teil weiter weggelassen werden kann, wenn es störend ist, sich einen Namen auszudenken, der nicht mit einem Ihrer eigenen Zweige in Konflikt steht. In diesem Fall ist eine aufgerufene ReferenzFETCH_HEAD
verfügbar. Sie könnengit log FETCH_HEAD
ihre Commits sehen und dann Dinge tuncherry-picked
, um ihre Commits auszuwählen.Schieben Sie es zurück zu ihnen:
Oft möchten Sie etwas von ihnen reparieren und es sofort zurückschieben. Das ist auch möglich:
Wenn Sie sich Sorgen machen, wenn Sie in einem getrennten Zustand arbeiten , erstellen Sie auf jeden Fall einen Zweig mit
:ournameforbranch
und ersetzen SieFETCH_HEAD
undHEAD
darüberournameforbranch
.quelle
master
)git branch -m newbranch
in diesem getrennten Zustand rennst, verliert git den Verstand und beginnt zu sagen, dass dein Repo nicht mehr gültig ist.git init
scheint das Problem zu beheben und Sie wieder in den Zustand zu versetzen, in dem Sie sich zuvor befanden, mit dem Zweig "newbranch".Wenn Antaks Antwort:
gibt Ihnen:
Dann (nach dem Rat von Przemek D) verwenden
quelle
Das Folgende ist eine nette, zweckmäßige Lösung, die mit GitHub zusammenarbeitet, um den PR-Zweig von der Gabel eines anderen Benutzers aus zu überprüfen. Sie müssen die Pull-Request-ID kennen (die GitHub zusammen mit dem PR-Titel anzeigt).
Beispiel:
Das Korrigieren Ihres unsicheren Codes # 8
Alice möchte 1 Commit in
your_repo:master
von zusammenführenher_repo:branch
Ersetzen Sie Ihre Fernbedienung, falls abweichend von
origin
.Ersetzen Sie
8
durch die richtige Pull-Request-ID.quelle
GitHub hat eine neue Option in Bezug auf die vorhergehenden Antworten. Kopieren Sie einfach die Befehlszeilen aus der PR:
Merge
oderSquash and merge
anzuzeigenview command line instructions
quelle
Wenn das gegabelte Repo geschützt ist, so dass Sie nicht direkt hineinschieben können und Ihr Ziel darin besteht, Änderungen an seinem Foo vorzunehmen, müssen Sie seinen Zweig-Foo wie folgt in Ihr Repo integrieren:
Jetzt haben Sie eine lokale Kopie von foo, der kein Upstream zugeordnet ist. Sie können Änderungen daran vornehmen (oder nicht) und dann Ihr foo auf Ihr eigenes Remote-Repo übertragen.
Jetzt ist foo in deinem Repo auf GitHub und dein lokales foo verfolgt es. Wenn sie weiterhin Änderungen an foo vornehmen, können Sie ihre abrufen und in Ihr foo einbinden.
quelle