2016-03-11 13 views
5

Diciamo che ho una cronologia di commit con 5 commit. So che posso effettuare il rebase dei miei commit localmente quando faccio una richiesta di pull che li riporterà in un singolo commit.La zucca Github passa dall'interfaccia web alla richiesta pull dopo i commenti di revisione?

Un caso d'uso comune per questo è:

  • Fai commit locali, lavorando su funzionalità
  • Squash impegna
  • Marchio Pull Request
  • Ricevi rivedere i commenti
  • Aggiornamento PR in modo appropriato

Posso farlo localmente sul mio ma chine e poi spingere di nuovo il mio cambiamento (usando -f poiché il rebase rende fuori sincrono con il telecomando). Questo è un po 'fastidioso.

Tuttavia, ciò richiede che io esegua una revisione ogni tempo di risposta I commenti di revisione: esiste un modo per eseguire l'operazione dall'interfaccia Web?

O forse il mio flusso di lavoro è sbagliato, dovrei modificare tutti i miei "commenti di revisione" che si commettono direttamente sul commit PR principale?

risposta

5

Non devi più eseguire rebase/squash in locale: basta inviare il commit al tuo ramo PR.

Il proprietario del pronti contro termine originale, se lui/lei ha scelto di, sarà schiacciare quei commit per voi (da marzo 2016):

https://help.github.com/assets/images/help/pull_requests/squash-and-merge.png

Vedere "Squash your commits" e the documentation: non consentire un nuovo flusso di lavoro, sia per te il contributore, sia per il manutentore del repository originale.

Come commento qui sotto: sarà attuato come l'unione di un PR è implementata:

  • Se funziona senza conflitti, l'unione (o qui, il merge --squash: vedi "In git, what is the difference between merge --squash and rebase?") sarà creato automaticamente.
  • Se c'è un conflitto, l'unione non viene creata e il manutentore ha la possibilità di rifiutare per ora il PR, chiedendo al contributore di fare il lavoro di schiacciare i commit e di modificare il PR.

Questo è veramente come quello che esiste ora, tranne che GitHub ha aggiunto il --squash al comando di unione. Niente di più.

+0

Stavamo parlando di questo al lavoro ieri - non deve essere uno scherzo di April Fools? :) Sono curioso di sapere come funzionerà, perché se è fondamentalmente ridefinendo, allora richiederanno a tutti i tuoi commit intermedi di rebase con successo automaticamente (e non richiedono la fusione manuale). Se prende solo "stato finale" vs "stato iniziale" e fa una diff? Va bene – enderland

+0

@enderland Non è davvero un pesce d'aprile! GitHub deve essere in ascolto dopo l'episodio https://github.com/dear-github/dear-github. – VonC

+0

Sì. Sono solo preoccupato che non funzioni bene nella pratica se sta facendo un'operazione di rebase/squash ... – enderland

Problemi correlati