2016-05-10 21 views
2

Das Setup:Git/GitHub-Pull-Request-Filterung

  • Ein Repository von jemand anderem auf GitHub besessen, dass ich auf Herstellung arbeiten gegabelt ändert
  • ich GitHub auf meinem Windows-Rechner verwenden, um nach unten ziehen, dass Gabel zu meinem System, wo ich meine Bearbeitungen mache und am Ende des Tages, beginne ich und meine Änderungen zurück zu meiner Gabel zu synchronisieren.
  • Alle paar Tage werde ich auch (re) sync mit dem (Upstream) Repository, so dass ich auf dem Laufenden mit Änderungen bleiben, die dort auch gemacht werden. Ich mache dies über Befehlszeilenaktionen in Git (für Desktop), ziehen Upstream herunter und verschmelzen es dann mit meinem eigenen lokal, bevor Sie es wieder zu meinem eigenen Fork synchronisieren.

Jetzt kommt der Spaß Teil. Ich arbeite auch an dem Code, wenn ich im Büro bin. Also habe ich ein ähnliches Setup, bei dem ich GitHub bei der Arbeit benutze und meine Gabel herunterziehe, an den Dateien arbeite und ich festlege und synchronisiere, bevor ich abends nach Hause komme. Wenn ich nach Hause komme, werde ich alle Änderungen, die ich gemacht habe, herunterziehen, damit meine lokale Kopie mit den Änderungen synchronisiert wird, die ich den ganzen Tag gemacht habe.

Das Problem, das ich habe, ist, wenn ich eine Pull-Anfrage mit dem Master-Zweig machen möchte. Es wird jedes Detail von dem, was ich lokal gemacht habe, einschließlich der konstanten Synchronisierung und Zusammenführung des Haupt-Repository, einbeziehen. Ein Beispiel ist hier zu sehen:

pull request example

Es gibt auch eine Liste der Elemente, für die es mir die Dateimodus erzählt hat sich geändert. Gibt es also eine Möglichkeit, eine Pull-Anforderung auszuführen, bei der diese Zusammenführungen mit dem Upstream-Repository (Master) ignoriert werden? Alle Commits sind meine eigenen Commits zu meinem Fork. Wenn ich eine Pull-Anfrage mache, will ich es nur gegen die finale Datei und den Upstream-Master tun. Sie müssen nicht all meine kleinen Updates sehen, die ich den ganzen Tag gemacht habe.

Oder sollte ich das anders machen?

+0

könnten Sie die Commits zerquetschen, aber das wäre die Geschichte neu zu schreiben. Besser noch, du könntest die Commits lokal komprimieren bevor du nach GitHub schiebst. –

+0

Allerdings würde Quetschen vor dem Commit zu GitHub nicht funktionieren, da ich GitHub begehen muss, wenn ich das Büro verlasse, also kann ich diese Änderungen greifen, wenn ich nach Hause komme, und genauso, wenn ich zuhause fertig bin, muss ich mich verpflichten zurück zu GitHub, damit ich diese Änderungen am nächsten Tag wieder auf der Arbeit haben kann. – KirAsh4

+0

Nein, ich stimme nicht zu. Die "Wahrheit" über deinen Zweig ist, was tatsächlich auf GitHub sitzt. Wenn ein Squash Commit da ist, dann ziehst du es an, wenn du nach Hause kommst. –

Antwort

0

wenn ich eine Pull-Anfrage mit dem Master-Zweig machen möchte.

GitHub hat kürzlich "Squash your commits": dass Ihre PR alle zerquetscht zu bekommen erlauben würde:

https://cloud.githubusercontent.com/assets/143418/14119749/7756ff60-f5a4-11e5-8597-12dcbb363746.png

+0

Wenn ich eine Pull-Anfrage (von meinem Fork zum Upstream-Repository) erstelle, bekomme ich nur eine Schaltfläche mit der Aufforderung 'create pull request'. Was du mir hier zeigst, ist mir leider unbekannt. – KirAsh4

+0

@ KirAsh4 wie in https://github.com/blog/2141-squash-your-commits beschrieben, müssen Sie diesen Modus aktivieren. – VonC

+0

Richtig, im * my * (gegabelten) Repository sind diese Optionen aktiviert. Ich habe keine Ahnung, ob das gleiche für das vorgelagerte Repository gilt, das ist nicht meins. – KirAsh4