Die Terminologie, die zum Zusammenführen eines Zweigs mit einem offiziellen Repository verwendet wird, ist eine "Pull-Anforderung". Dies ist verwirrend, da ich anscheinend meine Änderungen in das offizielle Repository verschieben möchte.
Warum wird es eine Pull-Anfrage und keine Push-Anfrage genannt?
git
github
pull-request
Alejandro Sanz Díaz
quelle
quelle
git push
. Für mich sagt das alles ... (Ja, sie geben vielleicht Git Pull aus, dann Git Push, aber der Push wurdemerge requests
. Viel klarer, IMHO. :)Antworten:
Wenn Sie eine Codeänderung in Ihrem Repository haben und diese in ein Ziel-Repository verschieben möchten, gehen Sie wie folgt vor:
git push
).git pull
vom anderen Repo).Eine "Pull-Anfrage" besteht darin, dass Sie das Ziel-Repository auffordern, Ihre Änderungen zu übernehmen.
Eine "Push-Anfrage" wäre das Ziel-Repository, in dem Sie aufgefordert werden, Ihre Änderungen zu pushen.
quelle
Wenn Sie eine Pull-Anfrage senden, bitten Sie den offiziellen Repo-Besitzer, einige Änderungen aus Ihrem eigenen Repo zu ziehen. Daher "Pull Request".
quelle
tl; dr da ich keinen Push machen darf, werde ich einfach eine Anfrage an den Repo-Besitzer richten, damit er sich entscheidet, zu ziehen
Wer kann Code in ein Repository übertragen?
Sollte jemand (möglicherweise böse oder ungebildet oder unbekannt) in der Lage sein, hierher zu kommen und zu sagen, habe ich dies einfach an Ihre Hauptniederlassung weitergeleitet und Ihren gesamten Code durcheinander gebracht HAHAHA! ?
Sicher willst du nicht, dass er das tut. Standardmäßig ist ein Sicherheitsnetz eingestellt, damit niemand auf Ihr Repo zugreifen kann. Sie können andere als Mitarbeiter festlegen und sie dann pushen. Sie würden Personen, denen Sie vertrauen, einen solchen Zugang gewähren.
Wenn Sie also kein Mitarbeiter sind und versuchen zu pushen, wird eine Fehlermeldung angezeigt, die darauf hinweist, dass Sie keine Berechtigung haben.
Wie können andere Entwickler auf ein Repo pushen, für das sie keine Push-Erlaubnis erhalten?
Sie können nicht jedem Zugriff gewähren, möchten jedoch anderen einen Auslass- / Einstiegspunkt geben, damit sie "den Repo-Besitzer auffordern können, diesen Code in das Repo zu ziehen ". Einfach ausgedrückt, indem sie das Repo zugänglich machen, können sie es teilen ... ihre Änderungen in ihrer eigenen Gabel vornehmen. Schieben Sie ihre Änderungen auf ihre eigene Gabel . Sobald es in ihrem eigenen Remote-Repo ist:
Sie stellen eine Pull-Anfrage von ihrer Gabel und der Besitzer des Upstream-Repos (auf das Sie nicht direkt zugreifen können) entscheidet, ob die Pull-Anfrage zusammengeführt werden soll oder nicht.
Auch eine halbbezogene Frage, die ich zum Lesen empfehle. Was genau passiert bei einem Git-Push? Warum wird ein Git-Push nicht wie ein Git-Merge betrachtet?
quelle
Pull - Request: Ich anfordern , um Sie zu ziehen meint.
quelle
I >>> You
- Sie ändern den Bezugspunkt zweimal im selben Kontext ... anstattI >>>> You <<<< Mine
Ich möchte etwas zum Repo eines anderen schieben.
Ich habe nicht die Erlaubnis zu schieben (oder zu ziehen).
Der Eigentümer / Mitarbeiter hat Berechtigungen. Sie können sowohl ziehen als auch schieben. Ich kann nicht pushen.
Also fordere ich sie auf, einen Zug von mir auszuführen - was indirekt bedeutet, dass ich sie auffordere, meinen Stoß anzunehmen.
Also keine Push-Anfrage. Nur für einen Zug. Und für die Annahme eines Pushs.
Daher eine Pull-Anfrage. Und keine Push-Anfrage.
quelle
Es ist das Wort "Anfrage", das bei diesen Aktionen der Schlüssel ist. Sie können sich das auch so vorstellen: "Ich habe eine Bitte an Sie, meine Arbeit anzunehmen, akzeptieren Sie?" - "Eine Pull-Anfrage".
Es ist zunächst etwas verwirrend, macht aber irgendwann Sinn.
quelle
Um dies besser zu verstehen und sich für immer daran zu erinnern, müssen Sie es sich vorstellen.
Stellen Sie sich einen großen, lebenden Baum vor {als Ihr Aufbewahrungsort}. Der Baum ist zu robust, als dass Sie einen Zweig hineinschieben oder einen neuen Teil hinzufügen könnten (symbolisiert das Erstellen eines neuen Zweigs oder das Einschieben von Code). Stattdessen müssen Sie den Baum bitten, einen Zweig in den Stamm zu ziehen oder den zu haben ändert sich von Ihnen.
Der Begriff "Pull-Anfragen" stammt aus der verteilten Natur. Anstatt Ihre Änderungen nur in das Repository zu übertragen (wie Sie es bei einem zentralen Repository tun würden, z. B. bei Subversion), veröffentlichen Sie Ihre Änderungen separat und bitten den Betreuer, Ihre Änderungen zu übernehmen. Der Betreuer kann dann die Änderungen überprüfen und den Zug ausführen.
Sie "fordern" also im Grunde die Leute mit schriftlichem Zugriff auf das Repo an, zu dem Sie beitragen möchten, "Pull" von Ihrem Repo.
Mit Pull-Anforderungen können Sie andere über die Änderungen informieren, die Sie an einen Zweig in einem Repository auf GitHub übertragen haben. Sobald eine Pull-Anforderung geöffnet ist, können Sie die potenziellen Änderungen mit Mitarbeitern diskutieren und überprüfen und Follow-up-Commits hinzufügen, bevor Ihre Änderungen in den Basiszweig übernommen werden. Github Erklärung
quelle
Ich denke, es ist eine dumme Terminologie, weil ich denken möchte, dass ich Ihnen etwas DRÜCKEN möchte und nicht umgekehrt , wenn ich jemanden bitten möchte, meine Ergänzungen zu ziehen. Daher sollte es in PUSH REQ geändert werden. da bin ich der aktive teil. Der Pfeil geht in die andere Richtung und beginnt bei mir und nicht der Goofy am anderen Ende. MEINER BESCHEIDENEN MEINUNG NACH.
quelle
Denken Sie so. Lokales Repository vs Remote-Repository.
git push
) - Mit anderen Worten, das Remote-Repository zieht Codes von Ihnen (lokal).Sie fordern etwas an. Also, frag dich selbst,
quelle
Ich befürchte, dass die meisten dieser Antworten die Frage beantworten. Was bedeutet "Pull-Anfrage"? oder Was würde "Push-Anfrage" bedeuten? eher als die Frage des OP: Warum wird es eine Pull-Anfrage und keine Push-Anfrage genannt?
Normalerweise ist diese Art des Ersetzens von Fragen akzeptabel, aber in diesem Fall ist klar, dass das OP die Antworten auf diese Ersetzungsfragen kennt, sodass die Beantwortung dieser Fragen nicht sehr hilfreich ist.
Nur die Leute bei GitHub, die den Begriff geprägt haben, wissen es mit Sicherheit. Es scheint jedoch offensichtlich, dass diese terminologische Wahl etwa den folgenden Standpunkt in Bezug auf das Phänomen "Änderungen, die von außen in ein Repository eingehen" widerspiegelt: Der Betreuer führt die Aktion aus (Pull) .
Eine Anfrage ist jedoch auch eine Aktion, und der Ausführende dieser Aktion ist nicht der Betreuer, sondern der Einreicher (der noch mehr Maßnahmen ergriffen hat, nämlich Arbeit). Der Begriff "Pull-Anfrage" führt daher zu Verwirrung darüber, wer der Agent ist . Letztendlich entsteht die Verwirrung aufgrund des rekursiven Charakters einer Anforderung: Eine Anforderung ist sowohl eine Aktion eines primären Agenten als auch eine Anforderung einer zukünftigen Aktion eines zweiten Agenten.
Die Situation ist ziemlich analog zu den heute üblichen sprachlichen Konstrukten wie "Wir haben unser Haus gebaut" (anstelle von "Wir haben jemand anderen bezahlt, um unser Haus zu bauen"), da die Verantwortung für die Hauptaktion vom offensichtlichen ursprünglichen Agenten auf "verlagert" wird ein sekundärer Agent, der eine soziale Führungsrolle erfüllt.
Daraus könnte man schließen, dass der Grund für die terminologische Wahl die Legitimierung des Standpunkts ist, dass Managementarbeit erstklassige Arbeit ist . Darüber hinaus kann der Grund für die Verwirrung über diese terminologische Wahl darin liegen, dass Arbeitnehmer, die keine Manager sind, naturgemäß einen anderen Standpunkt vertreten.
quelle