2015-04-21 18 views
6

Sono nuovo di git tramite la riga di comando e ho incontrato un po 'di problemi che non sono stato in grado di tirarmi fuori.Git Push al server remoto si blocca utilizzando Cygwin

Ho installato un repository sul mio server e ho creato una directory locale utilizzando le indicazioni allo thelucid.com.

sul server:

ssh [email protected] 
mkdir my_project.git 
cd my_project.git 
git init --bare 
git update-server-info # If planning to serve via HTTP 
exit 

poi, sulla macchina locale:

cd my_project 
git init 
git add * 
git commit -m "My initial commit message" 
git remote add origin [email protected]:my_project.git 
git push -u origin master 

Quando arrivo al comando finale qui "git push -u maestro origine" il comando si blocca e si blocca e non smette di appendere.

stato

git sul locale mi dà questo: lo stato

$ git status 
On branch master 
nothing to commit, working directory clean 

git sul server (all'interno myproject.git /) mi dà:

$ git status 
fatal: This operation must be run in a work tree 

io non sono esattamente sicuro dove cercare dopo, ho provato un sacco di cose, ma la mia ignoranza è montuosa e potrei usare una guida; forse un mago, alcuni nani e uno hobbit se hai qualche ricambio. Qualsiasi aiuto sarebbe molto apprezzato.

Sono su Windows 8.1. Utilizzo di Cygwin

Grazie.

risposta

5

Se si utilizza Windows, msysgit è un'opzione migliore. L'uso di git push in Cygwin è noto per avere problemi. L'essenza di questo è che Git per impostazione predefinita, tenta di utilizzare un "prompt della password semplice" come parte del processo di autenticazione dell'utente, come indicato nello git-configdoc (ricerca di core.askpass). Questa richiesta di password, tuttavia, funziona solo su UNIX reale, ma non su Cygwin. Se interessati, puoi leggere la cronologia di questo numero here.

Se è assolutamente necessario utilizzare Cygwin, assicurarsi di aver installato i pacchetti git Cygwin come specificato here. Quindi provare eseguire questo comando:

$ git config --global core.askpass /usr/libexec/git-core/git-gui--askpass

Probabilmente ci sono altre soluzioni più coinvolti là fuori, ma credo che la soluzione più semplice è ancora da installare msysgit. :-)

+0

Sembra utilizzare Git Bash (che presumo sia msysgit), risolto il problema. Non ho avuto bisogno di cambiare la directory in cui ero e git push è andato bene. Magia! Grazie a tutti! Saluti. ie – iethatis

+0

Ciao! Mi dispiace per quello L'avrei accettato prima, ma sono pieno di noob e non mi sono reso conto di come farlo. – iethatis

-2

Il problema è che ci si trova nella cartella .git. è necessario essere nella cartella principale (il genitore di .git) per poter visualizzare lo stato e quindi inviare tutte le modifiche.

cd.. 
git status