2014-09-29 10 views
17

Sto provando a sincronizzare il repository remoto con il repository locale ma ottenendo gli errori seguenti. Alcuni file (che non hanno estensione) non vengono sincronizzati con il repository locale sul computer WINDOWS, ma è possibile eseguire la sincronizzazione correttamente sulla macchina MAC.Errore pull Git: impossibile creare il file (argomento non valido)

Esistono impostazioni di configurazione in WINDOWS per gestire tale caso?

  1. Utilizzando TortoiseGit
  2. Windows 7 a 64 bit macchina

Dettagli errore

git.exe clone  --progress -v "https://github.com/xxxx/xxxxx.git" "C:\Data\GitHub\simility\vishesh-common" 

Cloning into 'C:\Data\GitHub\simility\vishesh-common'... 
POST git-upload-pack (200 bytes) 
remote: Counting objects: 3912, done. 
remote: Compressing objects: 100% (487/487), done. 
Receiving objects: 100% (3912/3912), 2.70 MiB | 567.00 KiB/s, done. 
Resolving deltas: 100% (1578/1578), done. 
remote: Total 3912 (delta 409), reused 0 (delta 0) 
Checking connectivity... error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030050305_fantasy-trilogy-spin?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030295038_laser-dogs?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_arizona-native-bird-painting-series?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030315317_native-birds-ii?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard-0?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_ikeyboard?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_only-you-can-prevent-computercide?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030552097_vector-cupholder-protect-your-laptop-and-your-lap?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_103055429_death-of-an-angel?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030650665_rachel-vanslyke-making-a-new-record-together-we-ca?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1030835091_russian-trucks-of-world-war-two?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-expansion-next-level?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1031873800_prop-project-expansion?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099860912_yaw-clock?ref=users (Invalid argument) 
error: unable to create file kickstarter/parsers/data/kickstarter/campaigndetails/_projects_1099992656_heavenly-sight-a-vision-out-of-blindness?ref=users (Invalid argument) 
fatal: unable to checkout working tree 
warning: Clone succeeded, but checkout failed. 
You can inspect what was checked out with 'git status' and retry the checkout with 'git checkout -f HEAD' 

git did not exit cleanly (exit code 128) (21746 ms @ 29-09-2014 13:32:13) 

risposta

15

Se ho letto che log bene, quei file hanno nomi che terminano con "? Ref = utenti "

Windows non consente di avere un '?' in un nome di file, proprio come non permette di avere un "\" o "*". Sotto Linux è possibile, se sfuggi a quei personaggi. Su Windows, penso che non sia affatto possibile. Vedi http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247

Si avrà un momento difficile con tali nomi .. In realtà non riesco a venire fuori con alcuna idea che ti permetterebbe di sincronizzare 1: 1. Puoi certamente recuperarli e salvarli con alcuni nomi sicuri come _projects_1099992656_heavenly-sight-a-vision-out-of-blindness__ref=users ma non so come farlo automaticamente, o come informare Git di quella mappatura, mi spiace ..

Questi nomi di file sembrano avere un Parametri di query HTML con suffisso loro. È veramente richiesto? forse questo è solo un artefatto che potrebbe essere rimosso? prova a parlare con i mantainer del progetto, forse saranno in grado di rimuovere semplicemente quel suffisso strano?

20

Mi sono imbattuto nello stesso problema, ma non ero disposto a rinominare o eliminare questi file. Quindi ecco una soluzione alternativa nel caso in cui è possibile vivere senza accedere a quei file utilizzando un checkout sparse:

Passare alla cartella .git nel repository e aprire il file config. (È anche possibile modificare la configurazione utilizzando tartaruga git, ma io havn't avuto installato qui.) Nella sezione [core] aggiungere la linea

sparsecheckout = true 

poi andare alla cartella .git/info e creare il file sparse-checkout. Aggiungere qualcosa come

* 
!kickstarter/parsers/data/kickstarter/campaigndetails/* 

La prima linea comprende tutto, mentre il secondo esclude tutti i file in kickstarter/parsers/data/kickstarter/campaigndetails/. Ora dovresti essere in grado di effettuare il checkout del repository. Usando le wild card è probabile che si possano fare eccezioni più sofisticate.

+0

questo è grande, super-utile, grazie – blueimpb

2

Sto usando bitbucket e ha la funzione che è possibile eliminare un file problema.

Questo è quello che faccio.

  1. Vai al tuo repository.
  2. Scegliere il menu "commit".
  3. Selezionare il ramo che si desidera rimuovere il file problematico.
  4. Vai al tuo file e fai clic. Raggiungerai la panoramica dei file che mostra i dettagli del file, ad es. il tuo codice, l'ora della data di questo file commesso, ecc.
  5. Guardate nell'angolo in alto a destra, vedrete il pulsante con l'immagine della freccia in giù (simile all'alfabeto v) cliccatelo.
  6. Apparirà nell'elenco a discesa e ti mostrerà il pulsante Rinomina e il pulsante Elimina al suo interno.
  7. Quindi è la tua scelta, la rinominerà o la cancellerà. Scegliere saggiamente.
  8. Dopo aver fatto clic su un pulsante. Bitbucket ti mostrerà una finestra di dialogo come dice e commetterà il tuo file con il pulsante commit.
  9. Dopo il commit è possibile tornare a sourcetree e tirare il codice senza problemi.
  10. Buon divertimento!