2015-01-09 19 views
10

Fondamentalmente ho usato Github revert button per ripristinare un PR precedente per un ramo funzione in master, poi ho deciso di fondere stesso ramo caratteristica che sono ritornato in precedenza, ma non ero in grado di farlo. Passi come segue:Come PR e unire di nuovo dopo aver ripristinato PR utilizzando il pulsante Github Ripristina

  1. PR per unire caratteristica ramo-master
  2. Ripristina PR merge da (master)
  3. cercato di creare nuovi PR per unire ramo funzione per master di nuovo.
  4. ricevuto questo messaggio:

Non c'è niente di paragonabile.

master è aggiornato con tutti i commit da feature-branch. Prova a cambiare base per il tuo confronto.

Qualche suggerimento su come posso unire caratteristica ramo nuovo in master

risposta

23

Basta riportare il ripristino. Quindi, facendo clic sul pulsante Ripristina, avrai creato un nuovo PR (il tuo passaggio 2). Una volta che questo è unito, avrai la possibilità di annullare questo, che creerà un nuovo ramo con tutte le tue modifiche. Puoi quindi estrarlo, apportare modifiche (se necessario) e creare un nuovo PR. Perderai tutti i messaggi di commit su Github, ma tutte le modifiche ai file saranno ancora disponibili. Buono a fare riferimento al tuo ramo originale e ritorna nel nuovo PR.

Qualsiasi cosa per evitare un rebase complicato o forzare la spinta al master.

+0

A) rebase è uno strumento utile, non evitarlo in quanto è complicato. B) il ripristino del ripristino ha avvertenze (vedi la mia risposta) – theannouncer

0

Il motivo per cui non è possibile eseguire l'unione automatica è perché la base del ramo non è sincronizzata con l'HEAD del ramo master.

Il ripristino del Revert può diventare disordinato e talvolta privo di trasparenza.

Inoltre, il ripristino di un ripristino impedirà ad altri rami con questo codice di unire correttamente.

Diciamo che avete la caratteristica x su master e unite nel ramo y. quindi decidi che il master non avrebbe dovuto avere la funzione x unita in quanto dipende dal ramo y. Quindi, ritorni su padrone. Quando si tenta di unire il ramo x, il comando git-merge vede l'unione originale e annuncia felicemente che tutto va bene e che i rami sono già stati uniti, omettendo questi commit per la caratteristica x, anche se li si voleva unire con il ramo y.

Si dovrebbe estrarre il master più recente, rebase il ramo su master e quindi si dovrebbe essere in grado di effettuare un'altra richiesta di pull.

+0

Questa risposta è insufficiente in tutti i casi tranne base perché dovresti trovare il tuo vecchio ramo e copiare tutto in un editor di testo per crearne uno nuovo . La soluzione di Anthony è molto più trasparente e l'unico problema è nei nomi github generati automaticamente, che puoi modificare tu stesso. – xHocquet

+0

Perché dovresti copiare qualcosa in un editor di testo?Pull master, passa al tuo ramo (il cui nome è nel PR quindi non devi "trovare" nulla), pull branch, 'git rebase master', forza push branch. Fatto. – theannouncer

Problemi correlati