2015-04-21 8 views
6

Jestem nowy do git za pośrednictwem wiersza poleceń i wpadłem w kłopoty, z których nie byłem w stanie się wydostać.Git Push to Remote Server zawiesza się przy użyciu Cygwin

Skonfigurowałem repozytorium na moim serwerze i utworzyłem katalog lokalny, korzystając ze wskazówek pod numerem thelucid.com.

na serwerze:

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 

następnie na komputerze lokalnym:

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 

Kiedy się do ostatecznego polecenia tutaj "git push origin master -u" wieszakami dowodzenia i wisi i nigdy przestaje wisieć.

stan

git na lokalny daje mi to:

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

git na serwerze (wewnątrz myproject.git /) daje mi:

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

Nie jestem do końca pewien, gdzie szukać następnie, próbowałem wielu rzeczy, ale moja niewiedza jest górzysta i mogłem użyć przewodnika; może jakiś czarodziej, jakieś krasnoludy i hobbit, jeśli masz jakieś części zapasowe. Każda pomoc będzie bardzo ceniona.

Jestem na Windows 8.1. Używanie Cygwin

Dzięki.

Odpowiedz

5

Jeśli korzystasz z systemu Windows, lepszym wyborem jest wersja msysgit. Korzystanie z git push w Cygwin jest znane z problemów. Istotą jest to, że Git domyślnie próbuje użyć "prostego hasła" w ramach procesu uwierzytelniania użytkownika, jak wspomniano w git-configdoc (szukaj). Ta prośba o hasło działa jednak tylko w prawdziwym systemie UNIX, ale nie w Cygwin. Zainteresowanych możesz przeczytać o historii tego numeru: here.

Jeśli koniecznie musisz używać Cygwin, upewnij się, że zainstalowałeś pakiety git Cygwin, jak podano here. Następnie spróbuj uruchomić tę komendę:

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

Istnieją zapewne inne, bardziej zaangażowane rozwiązania tam, ale myślę, że najprostszym rozwiązaniem jest nadal zainstalować msysgit. :-)

+0

Wygląda na to, że używając Git Bash (który, jak zakładam, jest msysgit), rozwiązałem problem. Nie musiałem zmieniać katalogu, w którym byłem, i git push przeszedł dobrze. Magia! Dzięki wszystkim! Pozdrawiam. czyli – iethatis

+0

Witam! Przepraszam za to. Przyjąłbym to wcześniej, ale jestem pełen noobów i nie zdawałem sobie sprawy, jak to zrobić. – iethatis

-2

Problem polega na tym, że znajdujesz się w folderze .git. Musisz być w folderze głównym (rodzica .git), aby móc zobaczyć status, a następnie wcisnąć wszystkie zmiany.

cd.. 
git status