2012-12-05 4 views
6

Utilizzando Windows 7, abbiamo un semplice repository GIT impostato su un'unità di rete in modo che più utenti possano estrarlo/spostarlo da esso. Sono in grado di creare un nuovo repository di lavoro sul mio locale e su più unità in rete. Tuttavia, quando provo a clonare un nuovo repository funzionante sulla stessa unità di rete (cartella diversa), fallisce.Impossibile clonare il repository GIT sull'unità di rete

Utilizzando TortoiseGIT, dopo aver fatto clic con il pulsante destro del mouse e scelto "GIT Clone", inserire tutti i percorsi necessari per il mio repository (il nuovo repository funzionante è già compilato) e premere ok, viene visualizzato il seguente errore:

Cloning into 'R:\path\to\new\repo'... done. 
error: refs/remotes/origin/master does not point to a valid object! 
error: Trying to write ref refs/heads/master with nonexistent object 5d2164db2c61efc7a5598f6ff75ed3fbbb12456e 
fatal: Cannot update the ref 'HEAD'. 
fatal: The remote end hung up unexpectedly git did not exit cleanly (exit code 128) 

e non riesce a creare il repository. Tuttavia, crea la nuova sottocartella ".git" della cartella &.

Non si tratta di un problema di autorizzazioni r/w perché è in grado di creare altri file, ma non riesco a creare questo repository appena clonato. Il mio collega non può neanche. Anche se sono arrivato a un'altra cartella sull'unità di rete, non riesco ancora a clonare correttamente il repository. Sorprendentemente, se faccio solo copia/incolla un repository che ho creato in un'altra posizione, eseguo manualmente un "pull", funziona e aggiorna correttamente.

Qualche idea su cosa provare dopo? Ovviamente ho cercato su google "exit code 128" e "non posso aggiornare il ref" HEAD "" ma non riesco a trovare una soluzione al mio problema. Probabilmente è qualcosa di veramente semplice che ci si affacciano, ma stiamo appena iniziato con GIT e questo è davvero causando mal di testa noi ...

UPDATE: Ho appena notato che quando faccio un tiro manuale da GIT a la mia "copia", sta facendo un Fast-Forward. Forse questo fornisce alcuni indizi aggiuntivi?

From R:/path/to/repo 
* branch   master  -> FETCH_HEAD 
Updating 5d2164d..d75bdb7 
Fast-forward 
Files.py | 3 +++ 
1 file changed, 3 insertions(+) 
Success 
+0

Sembra che il repository che stai cercando di clonare sia rotto. Che mi dici dell'ID di riferimento indicato nel messaggio di errore? È il TESTO corretto, esiste? – Chronial

+0

@Chronial, come potrei identificare che l'ID di riferimento è corretto nell'HEAD? Come ho detto, sono davvero nuovo a questo. Grazie per il tuo consiglio! – RyanDalton

+0

lancia 'git log 5d2164db2c61efc7a5598f6ff75ed3fbbb12456e' nel repository principale e controlla se fallisce. Ma se riesci a clonarlo su un'altra dir, probabilmente è corretto. – Chronial

risposta

0

Si prega di fare questo tramite riga di comando in msysgit

git clone /r/path/to/my/repo /r/some/other/path 

Inoltre, mi consiglia di utilizzare git dalla riga di comando in quanto è uno strumento che è stato progettato per essere utilizzato da linea di comando. Sarai in grado di trovare più aiuto, più velocemente, con qualsiasi problema ti venga in mente.

+0

Questo è lo stesso di TortoiseGIT, solo dalla riga di comando. Il messaggio di errore restituito (come mostrato nella mia domanda originale) è esattamente lo stesso. Non risolve il problema inerente con "l'oggetto inesistente". – RyanDalton

+0

interessante. Che ne dici di utilizzare il protocollo file: /// invece dei soli percorsi? Lo useresti solo al posto del primo percorso. –

4

Git potrebbe provare a fare cose intelligenti con collegamenti fissi che non funzionano sull'unità di rete. Prova a utilizzare git clone --no-hardlinks /r/path/to/my/repo o git clone file:///r/path/to/my/repo

+0

Grazie. Questo ha fissato le cose per me. – Yann