Ich benutze GitHub schon seit einiger Zeit und habe normalerweise meine Feature-Zweige gepusht und dann eine Pull-Anfrage gestartet, die ich selbst zusammengeführt habe. Ich fand, dass es mir half, den Überblick darüber zu behalten, wo ich Zweige zusammengelegt habe.
Aber in letzter Zeit habe ich immer mehr darüber gelesen, wie Git funktioniert, und mir wurde klar, dass ich die Merge-Commits verwenden kann, um auf das Zusammenführen von Zweigen zu verweisen.
Was kann ich also tun, wenn ich einen Feature-Zweig mit dem Master zusammenführe:
Führen Sie ein Merge-Commit für den Master durch und übertragen Sie ihn dann in den Upstream ODER drücken Sie den lokalen Zweig und starten Sie eine Pull-Anforderung?
Ich habe Einführung in Pull-Anfragen für ein 2-Personen-Team gelesen - meine eigenen Anfragen zusammenführen? und Was ist die Arbeit fließt mit 2 Personen an einem Projekt und soll mich offen Pull - Anforderungen von einem Zweig auf der offiziellen Repo oder meine Gabel? aber keiner von ihnen scheint zu antworten, wonach ich suche.
quelle
Antworten:
Git-Merge-Mechanismus:
Wenn Sie
git merge feature
while on Master verwenden, wird der Zweigfeature
mit dem Git-Verlauf zusammengeführtmaster
und einmerge-commit
(wenn der Zweig nicht schnell vorgespult werden kann) im Git-Verlauf erstellt.merge-commit
Verwenden Sie die--no-ff
Option mit, um ein Wesen zu erzwingenmerge
.Pull-Request-Mechanismus zusammenführen:
Wenn wir eine Pull-Request auf GitHub starten, wird ein Ort erstellt, an
GitHub Issue
dem Benutzer über die Commits in der PR sprechen und diese diskutieren können, bevor sie zusammengeführt werden. Wenn ein PR auf GitHub zusammengeführt wird, geschieht genau das Gleiche wiegit merge feature
.Was soll ich machen?
Was die Geschichte betrifft, gibt es keinen Unterschied zwischen den beiden.
Und was den Beitrag betrifft, müssen Ihre Mitwirkenden in beiden Situationen nichts anderes tun. Sie sind die gleichen (abzüglich des netten kleinen Chats).
Best Practices:
Und ich konnte keine Best Practices finden, aber die Logik besagt, dass PRs nicht sehr hilfreich sind, wenn sich nur eine einzige Person im Repository befindet.
@lxrec und @amon haben mir geholfen, zu diesem Schluss zu kommen.
quelle
git merge
Möglicherweise wird kein Zusammenführungs-Commit aufgezeichnet, wenn ein schneller Vorlauf durchgeführt werden kann. Um ein Zusammenführungs-Commit zu erzwingen, können Sie die--no-ff
Option hinzufügen .Wie Ashhar sagte, gibt es technisch und historisch keinen Unterschied. Bei Projekten mit einem kleinen Team bevorzuge ich die direkte Zusammenführung anstelle des zusätzlichen Schritts der Erstellung einer PR. Wenn jedoch eine Funktion überprüft / Feedback benötigt wird oder wenn es sich um eine WIP handelt und mehr als eine Person daran arbeitet, neige ich dazu, eine PR zu öffnen und der PR-Beschreibung eine Liste von Aufgaben hinzuzufügen.
Beachten Sie, dass
git merge
möglicherweise der Schnellvorlauf verwendet wird, wenn keine Änderungen am Master vorgenommen wurden. Daher möchten Sie diesen möglicherweise verwendengit merge --no-ff
. Ich neige dazu nicht.Verwenden Sie daher zusammenfassend nur PRs, wenn Sie eine Diskussion benötigen. Ansonsten einfach direkt zusammenführen.
quelle