Wie Zweige Zusammenführen in 2 verschiedenen repositories?
Ich bin neu in git und ich würde gerne wissen, wie man merge Master Zweig aus Beispielprojekt 2 ZU UAT Niederlassung in Inszenierung/Support. Ich weiß, das ist möglich Zusammenführen verschiedener Branchen unter einem bestimmten repository, aber nicht sicher, wie die Zusammenführung funktioniert über repositories.
Was ich wirklich tun wollen ist, nach Beendigung der Arbeit auf Beispielprojekt 2, würde ich mag, um es in die UAT Zweig zum testen etc, und schließlich, um die Produktion - branch für release.
Vielen Dank im Voraus für die Hilfe
- Sind Sie sicher, dass Sie benötigen, um mehrere Repositorys. Scheint eine schlechte Praxis in Ihrem Fall und IMHO, sollten Sie darüber nachdenken, es ein weiteres mal, bevor Sie mit der Einnahme dieser Art...
- Danke für die Antwort. Vielleicht ist dies nicht der beste Weg, um design der repositories. Wenn es Ihnen nichts ausmacht, könnten Sie Blick auf diese Frage (stackoverflow.com/questions/38399194/...). Ich kam mit 2 Entscheidungen darüber treffen, wie das einrichten der repositories und würde gerne euer feedback/Zeiger auf diese. Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde dir empfehlen zu einem lokalen Klon der Staging - /Support-repository. Anschließend fügen Sie die Projekt-repositories als weitere remote-repositories, die Ihnen erlaubt, mit Ihnen zu interagieren, Sie in Ihrem lokalen repository. Tun den Zusammenschluss lokal und drücken Sie das Ergebnis der Staging-repository.
Dies kann erreicht werden, mithilfe der folgenden Schritte.
Initialisierung und erste merge
Diese Klone Ihre staging-repository. Ersetzen Sie "http://staging" mit der richtigen URL zu Ihrem Staging - /Support-repository. Vielleicht wollen Sie auch geben Sie einen Pfad an, wo Klonen Sie das repository als weiteren parameter. Der parameter -a sorgt dafür, dass das remote-repository wird als "staging", die uns hilft zu unterscheiden, die aus den Projekt-repositories später auf.
Nächste Schritt ist das hinzufügen des remote-repository Zusammenführen von (in diesem Fall "Beispiel-Projekt 2")
Wieder, ersetzen Sie "http://sampleproject2" mit dem repository-URL "Sample Project 2". Sie können auch ändern, "Projekt2", das ist der name der remote-repository, um besser passen Ihr Projekt.
Danach
git branch -r
zeigen die Zweige von beiden staging-und Projekt2, wie diese:Neben der Kasse der Filiale, die Sie Zusammenführen möchten, wie diese:
Erzeugt einen neuen lokalen Zweig namens staging_UAT die Spuren der remote-Zweigstelle UAT aus der staging-repository. Die neue Filiale wird ausgecheckt sofort.
Nun haben Sie eine Kopie des UAT-Zweig von Inszenierung ausgecheckt. Sie können die Zusammenführung der änderungen von Projekt2:
Nun alle änderungen aus dem branch Master von Projekt2 sind eingebunden in die current-Zweig (das ist staging_UAT). Möchten Sie vielleicht einen Blick auf
git log
um das Ergebnis zu sehen. Wenn es passt Ihre expecations, Sie können schieben Sie es auf den Staging-repository:Tun Sie drücken den aktuellen Zustand Ihrer lokalen Niederlassung staging_UAT dem Zweig UAT in das remote-repository als Inszenierung.
Können Sie die anderen Projekte ebenso und auch einen Zweig wie staging_Production für die Zusammenführung der änderungen in den Produktions-Zweig der Inszenierung.
Zukunft verschmilzt
Können Sie verwenden Sie den gleichen Klon für die Zukunft verschmilzt, ohne dabei alle Klonen und der branch-Erstellung wieder und wieder. Aber in diesem Fall müssen Sie aktualisieren Sie Ihre lokalen Informationen über die remote-Niederlassungen:
Zunächst müssen Sie aktualisieren staging_UAT entsprechend der aktuellen version der UAT in der Staging-repository. Dies geschieht durch "ziehen"ing änderungen. Da die Filiale staging_UAT wurde mit "--track-staging/UAT", git weiß, Woher ziehen Sie die änderungen. Wenn UAT auf Inszenierung wird nie geändert, die auf keine andere Weise als diese (Bedeutung: mit genau diesem lokalen Klon zu drücken es aus staging_UAT), ist dies nicht erforderlich.
Wenn UAT geändert wird auf Inszenierung und Sie nicht ziehen, erhalten Sie eine Fehlermeldung, wenn Sie drücken, sagen:
Das andere update betrifft die Projekt2-repository:
Auch die Zweige des repository-Projekt2 sich verändert haben könnte. Wie Sie sehen können
git fetch
wird verwendet, um diese Veränderungen. Der Unterschied zwischen fetch und ziehen ist ziehen Sie auch Ihre lokale Kopie aktualisieren der Branche. Da es keine lokale Kopie der Projekt2 Zweige, Holen ist der Weg zu gehen. (In der Tatgit pull
ist nur eine Abkürzung fürgit fetch
undgit merge
).Anpassungen
Wenn Sie bereits eine lokale Kopie des repository, die den code enthält, können Sie auch verwenden, die für den merging-Prozess. Sie müssen nur sicherstellen, dass Sie mischen sich nicht die lokale Entwicklung und das Zusammenführen und vielleicht brauchen Sie mehr remote-repositories, wie Sie noch etwas für Ihre Entwicklung.
Den lokalen Zweig staging_UAT auch genannt werden könnte, nur UAT, so dass der Schieber ganz einfacher (
git push
wäre genug in diesem Fall). Allerdings könnte dies irreführend sein, da gibt es äste, die mit diesem Namen in mehreren Fernbedienungen.Alternativ könnten Sie Ihre Einstellung ändern "push.Standard". Finden Sie in der Dokumentation, um herauszufinden, wie sich das auswirken würde Ihr an.