Sto lavorando a un lungo processo di fusione con diversi conflitti.Come posso salvare un indice unito in modo incompleto in git?
Cosa posso fare per salvare lo stato intermedio, al fine di mantenere periodicamente i backup in caso di disastro?
Sto lavorando a un lungo processo di fusione con diversi conflitti.Come posso salvare un indice unito in modo incompleto in git?
Cosa posso fare per salvare lo stato intermedio, al fine di mantenere periodicamente i backup in caso di disastro?
È possibile eseguire il commit del lavoro in corso e inserirlo su un server in un ramo temporaneo. Ma per farlo, dovrai impegnarti con i segnalibri di conflitto (git add . ; git commit
). E ti consiglio di non farlo, perché è troppo facile perdere uno dei posti in conflitto quando torni alla fusione. Puoi anche provare a schiacciare l'unione in corso (git squash save
), ma non so se è possibile inserire un riferimento di squash su un server.
Un'altra alternativa potrebbe essere quella di provare a suddividere la fusione complessa in blocchi più piccoli e a spingere ogni unione intermedia.
Per exemple, se avete la seguente storia:
*---*---*---*---*---*---*---*---*---A
\
\--*---0---1---2---3---4---5---B
E tenta di unire B in A, è possibile ottenere la stessa cosa in primo luogo la fusione 0, poi 1, poi 2, poi 3,. .. quindi finalmente B (0, 1, 2, ... potrebbe non essere un commit successivo, ma alcune pietre miliari importanti nel ramo B).
Questa è la strategia che stiamo utilizzando durante l'unione complessa. Il ramo unito potrebbe non essere in uno stato lavorabile durante l'unione, quindi non inviare direttamente a A, ma a un altro ramo (AB-merge), quindi una volta completata l'unione, spingere tutto su A.
ma, nel caso specifico, non è possibile eseguire una fusione in corso, che è quello che sto cercando!
Dovrebbe essere possibile spostare temporanea .git/MERGE_HEAD
(creato quando merging), commit, e ripristinare .git/MERGE_HEAD
.
Ho pensato al commit progressivo; ma per il caso specifico, non è possibile effettuare una fusione in corso, che è quello che sto cercando! – Marcus
Aggiungerei: se usi 'git re-re-re', puoi far funzionare le unzioni più piccole, poi buttarle via e fare rapidamente la grande fusione usando i dati dei re-re-re. –