Ho un sottomodulo git nel mio repository git principale. A quanto ho capito, il repository principale memorizza un valore SHA (da qualche parte ...), indicando il commit specifico del sottomodulo che è "collegato a".Come ripristinare un puntatore del sottomodulo Git al commit memorizzato nel repository contenente?
Sono entrato nel mio sottomodulo e ho digitato git checkout some_other_branch
. Non ho idea di quale impegno provenga.
Vorrei ripristinare quel puntatore in modo che il repository principale e il sottomodulo siano di nuovo sincronizzati.
Il mio primo (probabilmente ingenuo) istinto diceva git reset --hard
- che sembra funzionare per tutto il resto. Con mia sorpresa, non ha funzionato per questo scenario.
Quindi ho capito che posso digitare git diff
, annotare l'ID SHA che il puntatore del sottomodulo usava avere, quindi andare al sottomodulo e git checkout [SHA ID]
... ma sicuramente ci deve essere un modo più semplice?
Come sto ancora imparando sui sottomoduli git, non esitate a correggere la mia terminologia se ci sono parole per concetti che non conosco.
In qualche modo, per me avevo bisogno per aggiungere '--init'. Senza di esso, i sottomoduli rimarrebbero in uno stato con '(nuovi commit)'. Anche se i miei sottomoduli erano già inizializzati. – Ambidex
@Ambidex Sì l'opzione '--init' è fondamentale in tutto questo. Mi è stato chiesto il nome utente e la password poiché i miei sottomoduli sono stati clonati su https. Sono andato in entrambe le cartelle e ho impostato i telecomandi per usare il protocollo 'ssh' per il checkout. –