Ich habe also ein Git-Repository, das ich von einer Upstream-Quelle auf Ghithub geklont habe. Ich habe ein paar Änderungen daran vorgenommen (die nicht festgeschrieben sind und im Hauptzweig liegen). Was ich tun möchte, ist, meine Änderungen als neuen Zweig auf meine Github-Seite zu übertragen und Github immer noch als Gabel sehen zu lassen.
Ist das möglich? Ich bin ziemlich neu in Sachen GitHub. Hat meine Frage überhaupt Sinn ergeben?
Der einfachste Weg, den ich mir vorstellen kann (und ich bin mir sicher, dass dies der am weitesten verbreitete ist), ist es, das Repo auf Github zu verteilen. Klonen Sie es lokal in ein anderes Verzeichnis. Fügen Sie das Upstream-Origin-Repo hinzu. Erstellen Sie einen Zweig in diesem neuen gespaltenen Repo. Kopieren Sie meine Codeänderungen von Hand in das neue lokale Repo. Und dann schiebe es zurück zu meinem Github.
Ist dies ein häufiger Anwendungsfall, bei dem es einfacher ist, Verzeichnisse zu duplizieren?
Ich schätze, ich frage hier im Gegensatz zu SO, da ich unter Linux Kommandozeilengit verwende und die Leute hier bessere Antworten geben.
quelle
Antworten:
Sie können alles von Ihrem vorhandenen Repository aus erledigen (Sie müssen den Zweig nicht in ein neues (lokales) Repository klonen, Ihren Zweig erstellen, Ihre Commits / Änderungen kopieren usw.).
Bereiten Sie Ihre Commits für die Veröffentlichung vor.
Verfeinern Sie vorhandene lokale Commits (z. B. mit
git commit --amend
und / odergit rebase --interactive
).Übernehmen Sie alle nicht festgeschriebenen Änderungen, die Sie veröffentlichen möchten (ich bin mir nicht sicher, ob Sie implizieren wollten, dass Sie einige Festschreibungen für Ihren lokalen Master und einige nicht festgeschriebene Änderungen oder nur einige nicht festgeschriebene Änderungen vorgenommen haben Zweig ”, sie sind ausschließlich in Ihrem Arbeitsbaum).
Benennen Sie Ihre Master - Zweig , um ihn zu geben , den Namen , den Sie für Ihre „Niederlassung“ wollen. Dies ist nicht unbedingt erforderlich (Sie können von einem Zweig zu einem anderen Zweig pushen), aber es wird wahrscheinlich langfristig Verwirrung stiften, wenn Ihr lokaler Zweig und der Zweig in Ihrem GitHub-Zweig den gleichen Namen haben.
Verzweigen Sie das vorgelagerte GitHub-Repository
(zB)
github.com:UpstreamOwner/repostory_name.git
als(zB)
github.com:YourUser/repository_name.git
.Dies geschieht auf der GitHub-Website (oder auf einem „Client“, der die GitHub-APIs verwendet). Es sind keine lokalen Git-Befehle beteiligt.
Fügen Sie in Ihrem lokalen Repository (das ursprünglich aus dem vorgelagerten GitHub-Repository geklont wurde und Ihre Änderungen im Master hat ) Ihr Fork-Repository als Remote hinzu:
Verschieben Sie Ihren Zweig in Ihr Fork-Repository auf GitHub.
Benennen Sie die Fernbedienungen optional um, sodass Ihre Gabel als "Ursprung" und der Upstream als "Upstream" bezeichnet wird.
Ein Grund, die Fernbedienungen umzubenennen, ist, dass Sie sie verwenden möchten,
git push
ohne ein Repository anzugeben (standardmäßig ist dies "Ursprung").quelle
-u
Option Ihre örtliche Filiale machenmy-feature
Tracking der gleichen Fernbedienung Zweigorigin/my-feature
. Der Befehl lautet:git push -u github my-feature
Es gibt ein Werkzeug:
hub
Jetzt kannst du:
quelle