Etikette zum Bearbeiten einer Pull-Anfrage

19

Ich besitze ein Repository auf GitHub, an das jemand mit einem einzigen Commit eine Pull-Anfrage gesendet hat. Ich möchte seine Lösung nur teilweise implementieren und etwa die Hälfte der vom Benutzer vorgenommenen Codeänderungen verwenden. Was soll ich in dieser Situation tun?

Erstellen Sie eine Verzweigung seiner Version, kopieren Sie anschließend den "alten" Code, den ich aus der ursprünglichen Version beibehalten möchte, und fügen Sie ihn in ein zweites Commit ein. Dies kann dazu führen, dass der Unterschied zwischen Commits größer aussieht als er tatsächlich ist, und Dinge wie wegwerfen git blame.

Kopieren Sie den Code, den ich von seinem Commit fernhalten möchte, und fügen Sie ihn in ein neues, anderes Commit ein . Dies bedeutet, dass er für seinen wertvollen Beitrag zum Code keine Gutschrift erhält.

Kopieren Sie wie oben einen Teil seines Codes in ein neues Commit, aber ändern Sie den Autor des Commits an seine Stelle . Er hat technisch gesehen nicht den genauen Code geschrieben, der festgeschrieben wurde, daher bin ich mir nicht sicher, ob dies verpönt ist. Aber zumindest bekommt er Zuschreibung für die Zeilen, die verwendet werden.

IQAndreas
quelle
1
Denken Sie daran, dass git "author" und "committer" unterscheidet. Wenn Sie also ihre Commits so umschreiben, dass sie nur das enthalten, was Sie tatsächlich wollen, werden sie weiterhin als Autoren betrachtet. Und du der Committer.
Jan Hudec

Antworten:

36

Ich würde mit Option 4 fortfahren: Erklären Sie dem Mitwirkenden, warum seine Pull-Anfrage nicht zu den Projektzielen passt (und geben Sie dem Mitwirkenden dabei die Möglichkeit, zu erklären, warum er der Meinung ist, dass dies der Fall ist ), und bitten Sie ihn, eine neue Version mit dem Inhalt erneut einzureichen nur die Änderungen, die zum Projekt passen.

Dies hat drei Vorteile:

  1. Du musst die Arbeit nicht machen ;-)
  2. Der Beitragende erhält ein besseres Verständnis Ihrer Ziele, sodass zukünftige Beiträge mit größerer Wahrscheinlichkeit keine Änderungen benötigen
  3. Der Mitwirkende behält nicht nur das Gefühl des Eigentums, sondern wird auch als nützlicher Mitwirkender anerkannt und anerkannt. All dies macht es wahrscheinlicher, dass sie weiterhin einen Beitrag leisten
Jörg W. Mittag
quelle
3
Ein klassisches Beispiel für eine soziale Lösung eines technischen Problems.
Paul