Git - Verschieben von Push-Commits in einen anderen Zweig
Mein Chef vor kurzem beschlossen, zu versuchen, einen outsourcing-Gruppe "für erhöhte Leistung", wie wir Sie ändern eine bestehende Anwendung um neue Funktionen hinzuzufügen. Trotz meiner Sorge, dass die Gruppe, die er wählte, schien nicht gut zu kommunizieren und war nicht gefragt genug Fragen, um wirklich zu verstehen und wirksam zu sein, gingen wir mit Ihnen sowieso.
Wir haben Sie bis zur Mitarbeit an unserem Git-repository (gehostet auf GitHub). Wir erstellten ein Zweig, nur für Sie (TheOutsourcedBranch, wir nennen es) und Sie aufgefordert, das zu tun alle Ihre Arbeit innerhalb dieser Branche.
Darüber hinaus werden wir darum gebeten, dass Sie schieben Ihre verpflichtet am Ende eines jeden Tages, so dass wir eine anständige Vorstellung davon, wie schnell Sie arbeiten und (noch wichtiger), wie gut Ihr code ist.
Heute drängten Sie zum ersten mal. Fünf verpflichtet, alle in den master. Ich versuche, herauszufinden, wie Sie Ihre commits vom master in TheOutsourcedBranch, ohne die Arbeit, die Sie getan haben (obwohl von den blicken von ihm, wir gehen zu müssen, um es wegzuwerfen sowieso).
Orange dots sind Ihre verpflichtet, die grauen Punkte sind von mir.
Ich weiß, es gibt eine Unmenge Fragen über Rebase (und könnte das sein, was ich hier tun müssen) aber ich habe eine harte Zeit, herauszufinden, welche von Ihnen für meine speziellen Fall. Und falls es von Bedeutung, die outsourcing-Gruppe und ich sind die einzigen Menschen, die wirklich mit dem repo jetzt.
Vielen Dank im Voraus!
Edit:
Vielleicht habe ich das gefunden was ich Suche: Bewegen Sie die letzten commit(s), um einen neuen branch mit Git
Ich würde gerne überprüfen mein Verständnis, obwohl. Lokal erstelle ich ein Ableger master (TheOutsourcedBranch), die enthalten alles, was A-H. ich Dann master-reset zurück zu C. Meister würde jetzt enthalten-C.
Vorausgesetzt, das ist richtig, das wäre in Ordnung für mich (lokal). Aber dann, was muss ich tun, um "Kraft" der remote-repository (GitHub) zu akzeptieren, meine lokale Sicht der Dinge, wie Sie gespielt und verwerfen seine version der Geschichte?
Einmal gespielt, ich denke, ich kann wieder arbeiten, ist diese Frage mehr allgemein/informativ und schneiden Sie einige Flusen--sonst ist es wahrscheinlich ein guter Kandidat für eine Löschung, denke ich.
InformationsquelleAutor der Frage Anthony Compton | 2012-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste Zweig ist einfach:
Diesem wird die Geschichte umzuschreiben, es entsteht eine neue Niederlassung, die entspricht dem aktuellen master-branch namens
their-branch
dann setzt deinen lokalen master-zu-Punkt, um eine zufällige SHA1 (...oder Zweig oder ein tag, oder was auch immer), und schließlich gewaltsam aktualisiert die remote-repository-Zweig entsprechend Ihrer lokalen Niederlassung.Liefert genau der situation, die Sie wollen.
Vorsichtsmaßnahmen: das wird die Geschichte umzuschreiben, und können vermasseln wer hat gebaut aus den alten Meister. Watch out für die merge-Problematik nach.
Kein Rebase gewünscht oder erforderlich ist.
(Als beiseite, ich schlage vor, Sie entweder geben Sie eine staging-repository, oder Sie zu verwenden
git send-email
oder nutzen Sie GitHub pull-Anforderungen, oder sonst verhindern, dass Sie schieben zu meistern, bis Sie es richtig machen. Die, basierend auf Ihrer Zusammenfassung, könnte einige Zeit Weg.)InformationsquelleAutor der Antwort Daniel Pittman
Haben Sie einen Sprung machen aus jedem bit der Arbeit, die von den gleichen Ausgangspunkt für jedes ticket, das Sie arbeiten. Haben Sie Zusammenführen der arbeiten zu einem RC-Zweig. Führen Sie Ihre Arbeit mit dem RC-Zweig. Dies ermöglicht es Ihnen zu testen, oft. Die workflow-haben wir hier:
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
Lassen Sie mich wissen, wenn Sie irgendwelche Fragen über Sie. Es funktioniert gut für uns.
InformationsquelleAutor der Antwort Adam Dymitruk