perché trova meno di un
No: perché trova più di un corrispondente ramo remoto, il che significa che la funzione remote_find_tracking()
restituisce ramo più di un monitoraggio per un determinato ref ramo locale.
È some_remote_branch
non già rintracciato da una delle filiali locali?
(a git config -l
consentirebbe di controllare ciò che si è attualmente impostato).
(un git branch -r
può anche aiutare a elencare i vostri attuali filiali remote-tracking.)
filiali remote, che ho pensato sono qualcosa di diverso che filiali remote-tracking.
errato, come illustrati da this thread:
-remoti rami sono le remote-tracking-rami "reale". Non li impegni a livello locale, sono essenzialmente copie di sola lettura di esattamente ciò che accade in un repository remoto.
Se si prova a 'git-checkout' un ramo di localizzazione remota, si otterrà un HEAD distaccato.
filiale locale:
Un ramo al quale è possibile eseguire il commit delle modifiche. Facoltativamente, il ramo può essere configurato per "seguire" uno dei rami di tracciamento remoto. Ciò significa che un 'git-pull
' senza argomenti (quando il tuo ramo locale è estratto), automaticamente 'git-fetch
' e quindi 'git-merge
' il ramo di localizzazione remota.
Ora:
è il lavoro di git-fetch
per aggiornare in remoto il monitoraggio rami con tutte le modifiche presenti nel repository remoto.
Git-pull
esegue git-fetch
e quindi esegue un git-merge
per aggiornare il ramo attualmente estratto.
Il problema è, per git-merge:
Quando questo accade, git-merge
deve decidere quali remote-tracking-branch
unire nel ramo locale attualmente controllato.
È possibile impostare quale remote-tracking-branch
sarà selezionato in questa situazione con l'opzione --track.
--track
istituisce un ramo locale di seguito per fare riferimento a ramo di un telecomando, non al ramo di monitoraggio
Consider thatremote_find_tracking()
prende un unico telecomando e un refspec con src pieno, e restituisce la data refspec dopo riempiendo il suo dst, se è stato configurato un monitoraggio appropriato per il telecomando, ovvero git.
/*
* For the given remote, reads the refspec's src and sets the other fields.
*/
int remote_find_tracking(struct remote *remote, struct refspec *refspec);
Può essere che si consideri già un ramo successivo locale corrispondente a some_remote_branch
. Avete qualche filiale locale con lo stesso identico nome?
Oppure il tuo ramo corrente ha un ramo remoto con un nome simile, che lo rende un candidato naturale per qualsiasi git-merge
: cercando di farlo rintracciare un altro ramo remoto renderebbe il non in grado di scegliere quale locale ramo per aggiornare/unire con le modifiche di un telecomando.
Aggiunti solo alcuni termini e alcuni suggerimenti (solo per esplorare, niente di definitivo) per spiegare la situazione attuale. – VonC
Grazie per il feedback, ma hai effettivamente trovato il motivo dietro il tuo messaggio di errore? – VonC