remove - git upload tag



Git fatale: il riferimento ha un formato non valido: 'refs/heads/master (6)

Sto usando Dropbox per sincronizzare un repository git , ma ora quando provo a push sto ricevendo un errore:

fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'

Pertanto, sembra che Dropbox abbia rilevato un conflitto e ne abbia creato una copia. Ok, nessun problema, quindi ho cancellato il file in conflitto. Comunque, ottenendo l'errore git sopra però.

$ git checkout master
    M   index.html
    Already on 'master'
$ git add .
$ git commit -a -m "Cleanup repo"
    [master ff6f817] Cleanup repo
    1 file changed, 5 insertions(+), 5 deletions(-)
$ git push
    fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'
    The remote end hung up unexpectedly`

Come posso risolvere questo? Grazie.


Answer #1

Ho riscontrato l'errore simile come

fatal: Reference has invalid format: 'refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)'

La semplice eliminazione del file .git/refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08) nel repository Dropbox remoto ha risolto il problema.


Answer #2

Il file in conflitto potrebbe trovarsi in più posizioni, vorrei esaminare:

.git/logs/refs/remotes/origin/
.git/logs/refs/heads/
.git/refs/remotes/origin/
.git/refs/heads/

O potresti cercare ovunque nella sottodirectory .git : find . -name '*conflicted*' find . -name '*conflicted*'

Oppure, altrimenti, elenca i rami attivi con git branch -a ed elimina ( git branch -d ) qualcosa di sospetto.


Answer #3

Prova prima un git checkout master per entrare nella filiale sana e ben denominata.


Answer #4

Questo succede anche al nostro team quando il mio collega spinge le sue modifiche e spegne il PC prima che Dropbox venga aggiornato.

L'ho risolto così semplicemente.

Ho appena cancellato la copia in conflitto. (Copia in conflitto XXXX aaaa-mm-gg)

E tiralo normalmente.

Si noti che il mio collega ha avuto le modifiche prima di incasinare. E ha spinto di nuovo i suoi cambiamenti. Questa volta nessun arresto. :)


Answer #5

Stavo ricevendo lo stesso errore

fatale: il riferimento ha un formato non valido: 'refs / heads / somebranch (1)'

per il seguente comando

git branch

Quindi, ho cercato il nome errato (nome del ramo seguito da (1)) usando il comando

find . -name 'somebranch (1)'

E ha mostrato il seguente risultato

./.git/refs/heads/somebranch (1)

Qual è la versione duplicata di alcuni IMO di Branch . Così, ho rimosso questo eseguendo il comando find seguito da delete

find . -name 'somebranch (1)' -print -exec rm -rf {} \;

Quindi il comando branch viene eseguito correttamente

git branch

Answer #6

fai un backup del tuo repository se non sei sicuro di questo, perché questi comandi sono irreversibili.

per prima cosa vai nella directory dei tuoi repository.

cd myrepo

quindi cerca ricorsivamente i file in conflitto ed eliminali

find . -type f -name "* conflicted copy*" -exec rm -f {} \;

infine, rimuovi eventuali riferimenti "in conflitto" dal file git's packed-refs

awk '!/conflicted/' .git/packed-refs > temp && mv temp .git/packed-refs




dropbox