Penso che potresti avere solo alcune idee sbagliate qui che ti riguardano più di qualsiasi cosa che sia tecnicamente sbagliata.
In primo luogo, in genere non è necessario eseguire il commit direttamente sul ramo principale.Dal modo in cui hai descritto la tua situazione, non sono sicuro che ciò accada o no, ma se lo è, prova a non farlo.
Se si scopre che qualcosa non può essere unito in modo pulito in master, non provare a risolvere il problema sul master stesso. Invece, dovresti risolvere il problema sul ramo della funzione. Una volta risolto il problema, puoi quindi unirli perfettamente al master.
Per quanto riguarda rebase, è perfettamente utile utilizzare rebase fino a quando non si preme su un repository remoto. Una volta che hai inviato qualcosa a un repository remoto, non vuoi rebase, dato che stai rovinando la cronologia per qualcun altro, e git non può risolverlo per te. Quindi non temere rebase, solo sapere quando usarlo e quando non usarlo.
Un modo in cui potresti essere in grado di utilizzare il rebasing qui (anche in questo caso, supponendo che tu non abbia spinto il ramo in questione in remoto) per aiutare con il tuo problema è quello di prendere il ramo della funzione che non può essere unito in master e rebase su maestro. Questo ti obbligherà a risolvere il problema su quel ramo. Una volta risolto, l'unione in master dovrebbe essere banale (a meno che il master non sia stato nuovamente modificato nel frattempo) e si possa fondere in modo pulito in master.
Ci sono molti tutorial disponibili per git là fuori, e avranno anche degli esempi di codice per aiutare. Ecco uno dei più "classici", credo che il flusso di lavoro qui descritto funzioni bene. http://nvie.com/posts/a-successful-git-branching-model/
Si prega di notare che non sto approvando il set di script bash chiamato 'flusso git' che tenta di semi-automatizzare il flusso di lavoro lì (questi script non ha funzionato molto bene per noi quando li abbiamo provato), ma il flusso di lavoro in sé descritto qui funziona bene.
fonte
2013-02-28 20:24:42