Ich bin kein Programmierer von Beruf, aber ich mache ein paar Codierungen und habe einige Github verwendet. Ich bin auf eine überraschende Situation gestoßen. Ich bin sehr vertraut mit git.
Es gibt ein Projekt, bei dem ich einen (kleinen) Fehler gefunden habe, der mich betroffen hat. Ich habe einen Nachmittag damit verbracht, es zu finden und zu reparieren. Ich habe das Repository gegabelt, die Änderung festgeschrieben und eine Pull-Anforderung ausgegeben. Nachdem ich festgestellt hatte, dass es als "In Entwicklungszweig integriert" geschlossen wurde, dachte ich, dass alles in Ordnung sei.
Ich habe heute im Repo gestöbert, um meinen Zweig zu entfernen, und ich kann überhaupt nicht feststellen, wo das Commit in das Repo des Betreuers eingearbeitet wurde. Nach einiger Zeit wird mir klar, dass es als Commit hinzugefügt wurde, aber der Autor bin nicht mehr ich.
Soweit ich das beurteilen kann, besteht die einzige Möglichkeit darin, einen Rebase, eine Änderung oder ein anderes History-Rewrite zu verwenden, um den ursprünglichen Autor zu entfernen.
Das scheint mir sehr falsch zu sein. Im besten Fall ist es verwirrend, im schlimmsten Fall erkennt der Autor dieses Repos die Verpflichtungen aller an, und dann geht die Geschichte des ursprünglichen Mitwirkenden verloren. Wieder ist es ein kleiner Fehler, ich benutze ihn nicht für meinen beruflichen Lebenslauf, er scheint nur unehrlich zu sein.
Ist das normal? Soll ich etwas dazu sagen?
Bearbeiten: Das allgemeine Gefühl scheint zu sein, dass ich fragen gehen sollte, also werde ich genau das heute Morgen tun.
Wie in der Anfrage unten angegeben. Ich habe geprüft und mein Code existiert und wurde genau so angewendet, wie ich ihn geschrieben habe (einschließlich des Kommentars). Ich habe überprüft, dass sowohl der Committer als auch der Autor geändert wurden. Gleichzeitig mit meinen Änderungen wurde eine weitere Änderung hinzugefügt. Es ist eine einzelne Zeile, die sowohl den Patch als auch den vorherigen Code betreffen würde. IE die Hinzufügung mit einer Zeile hängt nicht mit dem Programmfehler zusammen, den ich regelte.
Update Es scheint die Antwort zu sein, dass der Autor einen Entwicklungszweig unterhält und nicht von seinem Masterzweig in diesen verschmelzen möchte. Er hat mein Commit neu verfasst, um eine Zusammenführung zu vermeiden. Ich habe mich nicht mit der Fülle von B / C-Gits des ursprünglichen Zweigs befasst, mit denen sich Commits nach Bedarf auswählen, neu zusammenführen und zusammenführen lassen.
Ist das typisch für Github?
Sollte ich den Projektbetreuer kontaktieren, um zu fragen, auf welchen Zweig Patches angewendet werden sollen?
Antworten:
Nein, sollten sie nicht, wenn vermeidbar. Meiner Erfahrung nach ist dies ein Problem, das viel zu oft auftritt. Ich glaube jedoch, dass es mehr damit zu tun hat, dass man git nicht richtig einsetzt, als dass jemand Kredit stehlen will.
git rebase master
. Bei Konflikten können sie die Konflikte entweder selbst beheben (ohne den Autor zu ändern) oder Ihnen die Möglichkeit geben, sie zu beheben.Ich denke, Github könnte und sollte nach dieser Art von versehentlichem Kreditraub Ausschau halten und die Betreuer gegebenenfalls über bewährte Verfahren informieren.
quelle
Sie haben hier einige wichtige Details ausgelassen.
Wenn die Art und Weise, wie Sie den Fehler "behoben" haben, nicht den Wünschen des Betreuers entsprach oder sogar darin falsch war, dass er seine eigenen Fehler einbrachte, musste der Betreuer möglicherweise Ihre Arbeit vor dem Festschreiben bearbeiten. In diesem Fall ist es verständlich, den Autor zu ändern.
Wie schon andere erwähnt haben, ist der Autor ganz anders als der Committer . Wie Sie vielleicht bereits wissen, ist der Autor derjenige, der das Commit tatsächlich erstellt hat, während der Committer derjenige ist, der es anwendet.
Sie sollten sich das Commit genau ansehen und Ihre Frage mit Ihren Ergebnissen aktualisieren.
quelle
Es scheint die Antwort zu sein, dass der Autor einen Entwicklungszweig unterhält und nicht von seinem Masterzweig in diesen verschmelzen möchte. Er hat mein Commit neu verfasst, um eine Zusammenführung zu vermeiden.
quelle
git cherry-pick
.So beantworten Sie Ihre aktualisierte Frage:
Es ist schwer zu sagen, was typisch für Github ist, abgesehen davon, dass normalerweise jedes Projekt anders ist und jeder seinen eigenen bevorzugten Workflow hat. Im Allgemeinen empfiehlt es sich, vor dem Senden einer Pull-Anfrage zu fragen, wie der Workflow ist, oder zu prüfen, ob Sie anhand früherer geschlossener Pull-Anfragen feststellen können.
Meine persönliche Erfahrung war, wenn Sie nicht fragen, dass sie die Pull-Anfrage im Allgemeinen bestenfalls kommentarlos schließen (im schlimmsten Fall) oder einen Kommentar hinterlassen, in dem erläutert wird, wie Sie aufgefordert werden, Ihre Pull-Anfrage zu aktualisieren. Ich werde sagen, dass es seltsam erscheint, wie der Betreuer in Ihrem Fall damit umgegangen ist, aber es mag für sie nur der Weg des geringsten Widerstands gewesen sein. Ich bezweifle, dass es absichtlich dazu gedacht war, Kredite zu stehlen.
Ich würde vorschlagen, dass Sie den Betreuer bitten, eine Dokumentation hinzuzufügen, in der erläutert wird, wie er Pull-Anfragen erhalten möchte und gegen welche Branche, um die Verwirrung und den Kreditmangel in Zukunft zu vermeiden. Ich würde mir wünschen, dass mehr Projekte diese Dokumentation zur Verfügung stellen, da ich denke, dass dies die Bereitschaft der Menschen erhöhen würde, sich an dem Projekt zu beteiligen.
quelle