2011-08-20 30 views
11

Po prostu konfiguruję git na moim serwerze linuxowym i skonfigurowałem SSH - chcę stworzyć prywatne repozytorium do pracy z moimi przyjaciółmi. Kiedy jestem ciągnąc lub klonowanie że repo wszystko działa poprawnie (LAN), ale kiedy moi przyjaciel próbuje ciągnąć lub sklonować go (przez Internet), git wisi na:Prywatne repozytorium Git - zawiesza się przy ciągnięciu

remote: Compressing objects: x 

gdzie x jest zawsze niższa niż 17% .

Co jest nie tak z tym lub jak mogę to naprawić?

PS: Nie używam gitosis, zainicjowałem to zdalne repo przy pomocy: git --bare init.

Z góry dziękuję.

Aktualizacja:

Te wyniki poleceń:

$ cat .git/config 

[core] 
repositoryformatversion = 0 
filemode = false 
bare = false 
logallrefupdates = true 
symlinks = false 
ignorecase = true 
hideDotFiles = dotGitOnly 
[remote "origin"] 
url = ssh://[email protected]:port/~/repo_name.git 
fetch = +refs/heads/*:refs/remotes/origin/* 

 

$ git fetch -v 
Enter passphare for key '/c/Users/dev/.ssh/id_rsa': 
remote: Counting objects: 76, done. 
remote: Compressing objects: 21% (12/55) 

Jednak, kiedy mój przyjaciel dostał ZIP ze źródłami i pchnął go, wszystko działało w porządku. Więc jest w stanie naciskać. Dodałem pusty plik i pchnąłem go, pomyślnie pobrał (wyciągnął).

+0

Czy to pomaga, gdy wykonasz 'git gc' na serwerze-repo? Czy są też inne protokoły (ssh/git/static-http/"intelligent" -http)? Czy używasz tego samego konta użytkownika dla dostępu do twoich i twoich znajomych, czy też są inni (myślę o problemach z uprawnieniami)? – Rudi

+0

@Rudi Cóż, kiedy wykonałem 'git gc' przez SSH lokalnie (serwer działa na moim komputerze), to zostało zakończone, ale kiedy mój przyjaciel próbował zrobić to samo, to zamarzło (kursor miga na zawsze). Próbował wyciągnąć po tym i zamarzł na "Kompresowanie obiektów: 7%". Tak, mamy jedno konto dla git i używamy protokołu SSH (początek wygląda tak, na obu komputerach): 'ssh: // git @ server_uri: port/~/repo_name.git'. Git repo znajduje się w katalogu domowym konta git. Nawiasem mówiąc, używamy 'git pull origin master'. – Robik

+0

brzmi to, że istnieje komponent sieciowy, który odrzuca połączenie ssh po kilku sekundach, co najprawdopodobniej oznacza uszkodzenie NAT. Możesz próbować z wireshark na obu końcach, jeśli pakiety TCP zostaną usunięte po pewnym czasie (podejrzewam brakujący serwer pakietów ACK-> klient). – Rudi

Odpowiedz

7

Get znajomego, aby spróbować:

git fetch -v 

Jeśli to nie daje odpowiedzi, a następnie nakłonić go, aby to zrobić:

cat .git/config 

Jeśli serwer jest bezpieczny następnie zaktualizować swoje pytanie dołącz wyjście tego polecenia. Jeśli nie jest bezpieczny, zmień adres IP i inne dane identyfikacyjne na fałszywe adresy IP i fałszywe dane, ale postaraj się nie zmieniać niczego, ponieważ może to doprowadzić do podania błędnych informacji.


Edycja na podstawie aktualizacji:

URL powinien zaczynać się od "ssh: //" nie "ssh /". Chociaż mam zamiar jeszcze raz to sprawdzić.

+0

Pytanie zaktualizowane. – Robik

+0

Przykro mi, ale to 'ssh: //'. Po prostu skopiowałem go z emotikonem i go brakuje. – Robik

+0

Cholera, cóż, naprawdę nie wiem, ponieważ wszystko inne wygląda normalnie. Czy twój przyjaciel może przyjść do twojego domu? Albo to, albo możesz spróbować klonować/ciągnąć swoje repozytorium spoza sieci. W ten sposób możesz dowiedzieć się, czy problem dotyczy jego, czy końca. – Gerry

1

Miałem ten sam problem, dopóki nie przejrzałem ustawień adaptera Ethernet i zmieniłem rozmiar pakietu Jumbo z 1514 bajtów na 9014 bajtów.

+3

Trudno uwierzyć, że pakiety jumbo są wymagane do działania git. –

+1

Myślę, że może to być inne ustawienie, które w połączeniu z mniejszym rozmiarem zawiodło. Mam problemy z moją kartą sieciową od miesięcy. Prawdopodobnie jest to problem ze sterownikiem. –

+0

Miałem ten sam problem z Ethernetem, próbowałem tylko z Wi-Fi, zadziałało ... –

2

Jeśli polecenie Git push/pull freeze przy użyciu konfiguracji, która wcześniej działała, spróbuj ponownie uruchomić komputer.

To brzmi dziwnie, ale doświadczyłem tego w systemach Windows i Linux.

+1

Dokładnie tak się właśnie stało (na Mac OS). Nie jestem pewien, którą usługę trzeba dokładnie zresetować, ale na coś trafiłeś. Dzięki! – jdunk

Powiązane problemy