2016-04-07 20 views
5

Nella mia azienda chiediamo agli sviluppatori di schiacciare i commit sulle filiali feature prima di unire in develop. Una volta schiacciato, lo sviluppatore spinge a GitHub e accede a GitHub per creare una richiesta di pull.Perché la richiesta pull unita in GitHub crea un commit duplicato?

Quando la richiesta di pull è fusa, si finisce per vedere due impegna nella storia del ramo develop:

  1. un commit dicendo "richiesta di pull fusa"
  2. Il singolo, schiacciato impegnarsi da il ramo feature

Perché succede? E come possiamo evitarlo? Ho letto un simile Q&A about avoiding "merge commit hell" ma il mio obiettivo è utilizzare l'interfaccia utente GitHub per creare, tenere traccia e discutere le richieste di pull.

+0

Penso che la seconda commettere è una fusione commesso. Per evitarlo, devi unirlo manualmente e quindi inviarlo a GitHub. GitHub non ha la funzionalità per chiudere il commit di unione. Controlla [qui] (https://stackoverflow.com/questions/16358418/how-to-avoid-merge-commit-hell-on-github-bitbucket). – xuhdev

risposta

7

Il commit che stai vedendo è un commit ; generalmente questi vengono creati automaticamente da git ogni volta che si esegue un'unione non veloce, ma è anche possibile forzarne uno per essere sempre creato. E questo è ciò che fa GitHub quando usi il pulsante Unisci.

Se non si desidera unire commit, è necessario selezionare i commit su master invece di utilizzare il pulsante unione. Non c'è modo di farlo nell'interfaccia utente web GitHub.

Edit: GitHub ha ora aggiunto squash and merge ed rebase and merge funzionalità all'interno del loro web UI:

enter image description here

+0

Quindi sembra che ora ci sia modo di evitare il commit di merge in GitHub ... Questo fa davvero schifo. Generalmente amo l'interfaccia utente di richiesta pull GitHub, ma queste richieste di unione sono fastidiose e sicuramente mi confondono, perché il diff mostra esattamente la stessa diff di ciò che mostra il commit schiacciato che lo precede. –

+1

Unisci commit ha molto più senso quando si guarda [una vista ad albero della storia] (http://stackoverflow.com/q/5382255/120999), che purtroppo GitHub non fornisce. Amo GitHub, ma con il passare degli anni spendo sempre più tempo con gli strumenti 'git' nel terminale invece che con le viste" graziose "che forniscono, dal momento che inevitabilmente diventa più confuso quando provi a fare qualcosa oltre le operazioni leggermente di base. –