2012-12-12 46 views
5

Tôi không thể đẩy vào github. Tôi đã có thể đẩy những thay đổi nhỏ, nhưng lần này, nó bị treo sau khi nó viết này:git bị treo khi đẩy

git push origin master 
Counting objects: 22, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (12/12), done. 
Writing objects: 100% (12/12), 1.51 KiB, done. 
Total 12 (delta 8), reused 0 (delta 0) 

Mở Process Manager Ubuntu của tôi, tôi thấy ssh treo khi tôi cố gắng đẩy một cái gì đó và nó là: ssh git @ github.com git-nhận-pack 'xxx/yyy.git'

Khi tôi cố gắng trực tiếp chạy lệnh này trên thiết bị đầu cuối của tôi, bây giờ nó bị treo sau khi nó viết này:

0078...7d4 refs/heads/master report-status delete-refs side-band-64k quiet ofs-delta 
0000 

Tất cả các thins khác làm việc tốt, nhưng tôi không thể đẩy. Điều gì có thể là lý do?

Thông tin bổ sung: Tôi đã tạo lại tệp git và thay đổi điều khiển từ xa thành HTTP từ SSH. Bây giờ tôi nhận được lỗi này khi tôi cố gắng đẩy:

Counting objects: 17, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (9/9), done. 
Writing objects: 100% (9/9), 1.19 KiB, done. 
Total 9 (delta 6), reused 0 (delta 0) 
error: RPC failed; result=52, HTTP code = 0 
fatal: The remote end hung up unexpectedly 
fatal: The remote end hung up unexpectedly 
Everything up-to-date 

Thông tin thêm 2: Tôi đã thử nghiệm nó hàng giờ và có vẻ như kết nối mạng của tôi là vấn đề. Tôi đã cố gắng đẩy từ một kết nối khác, và nó hoạt động rất tốt. Điều gì có thể là lý do đằng sau điều này? Tường lửa của modem bị vô hiệu hóa.

+0

Tôi tin rằng vấn đề của bạn giống như vấn đề này: [GIT không thể đẩy sau khi thêm] (http://stackoverflow.com/questions/14123170/git-impossible-to-push-after-add). Hãy thử giải pháp được đề xuất đó. – IQAndreas

Trả lời

-2

Kiểm tra xem kết nối mạng của bạn có tải lên quá chậm hay không. Có lẽ bạn chỉ cần thời gian. Bạn có thể theo dõi kết nối mạng của mình để xem liệu bạn có đang gửi dữ liệu ngược dòng không?

+2

Tôi đang tải hình ảnh 300 kb lên Gmail trong chưa đầy 5 giây, tôi không nghĩ rằng kết nối mạng của mình quá chậm. Có cách nào để theo dõi tải lên git không? Tôi sẽ cho nó thêm cơ hội. – gzg

+1

Kiểm tra xem bạn có vấn đề MTU trên kết nối mạng của bạn hay không. Nếu bạn giảm MTU của giao diện của máy tính của bạn đến 1280 bạn có thể đẩy không? –

0

Trong trường hợp của tôi, vấn đề có liên quan với quyền truy cập vào kho lưu trữ. Tôi đã đọc chỉ truy cập, sau khi thêm quyền viết, vấn đề đã được giải quyết.

+0

Bạn không chắc chắn tại sao điều này lại bị bỏ phiếu. Điều này giải quyết vấn đề cho tôi, giá trị gấp đôi kiểm tra quyền truy cập hệ thống tập tin của bạn trên những người đầu tiên từ xa. (Không chắc chắn tại sao không có lỗi nào được đưa vào quy trình.) – Adambean

-1

chạy đầu tiên như sau:

env | grep SSH_ASKPASS 

nếu bạn nhận được gì, sau đó bạn phải thiết lập giá trị đó. Nếu bạn đang sử dụng GNOME, tìm vị trí của gnome-ssh-askpass.sh mà thường được tìm thấy bằng cách làm như sau:

find/| grep gnome-ssh-askpass 

và nó thường được tìm thấy trong thư mục /etc/profile.d. Thông thường, điều này sẽ được nạp tự động, nhưng vì lý do nào đó nó không được. vì vậy hãy chạy như sau:

source /etc/profile.d/gnome-ssh-askpass.sh 

(cách khác, bạn có thể chỉ chmod +x file và chạy nó trực tiếp, đó là tùy thuộc vào bạn)

Sau khi thực hiện, xác minh rằng đó là một giá trị cho env | grep SSH_ASKPASS và đẩy sau đó git sẽ hoạt động trở lại.

Nếu bạn không tìm thấy tập tin gnome-ssh-askpass.sh, sau đó làm một yum search ssh-askpass và cài đặt mà gói (thường yum install openssh-askpass)

Đối apt-get, làm điều gì đó tương tự như giả sử bạn đang sử dụng gnome, nhưng nếu kde, thì có lẽ có a kde-ssh-askpass ??

8

Tôi đã dành 5 giờ cuối cùng để khắc phục sự cố tương tự. Trước tiên, bạn có đang chạy trên đường hầm hoặc kết nối VPN không?

Hóa ra MTU (Đơn vị truyền tối đa) của đường hầm có thể được định cấu hình sai ở chỗ một số bộ định tuyến ở giữa đường dẫn mạng chỉ có thể hỗ trợ MTU thấp hơn nhưng phần mềm VPN/tunnel không được biết đến, dẫn đến các gói bị loại bỏ.

Vì vậy, các câu trả lời nhanh là cố gắng giảm MTU kết nối của bạn:

sudo ifconfig eth0 mtu 1300 

Ở đây tôi đang thiết lập MTU cho giao diện eth0, thay thế với giao diện bạn đang thực sự sử dụng để truy cập máy chủ git. MTU mặc định thường là 1500.

Đối với OpenVPN, tôi phải cập nhật giao diện tun0. Có một cách tốt hơn/mạnh mẽ hơn để thực hiện việc này trong cấu hình OpenVPN: sử dụng các tùy chọn link-mtu <n>mssfix.

+1

+1 'cos bạn vừa mới lưu lại giờ của tôi. Những gì tôi có thể không hoàn toàn làm việc ra là lý do tại sao MTU một nơi nào đó giữa các điểm cuối của tôi thay đổi. – DorianFM

Các vấn đề liên quan