2011-12-27 44 views
9

Tôi có một kho lưu trữ từ xa có quyền truy cập HTTPS.Git: Yêu cầu HTTP không thành công

git status danh sách chỉ có một entry: thạc sĩ

git remote -v danh sách hai mục đến địa chỉ giống nhau: một cho lấy, một cho push

Nhưng khi tôi làm git remote show origin, hoặc các hoạt động khác, như fetch, tôi nhận được :

error: while accessing https:... 
fatal: HTTP request failed 

tôi sau một proxy, nhưng khi nó được thiết lập trong .gitconfig tôi (sslVerify = no) và nhân bản là OK, tôi không nghĩ rằng vấn đề xuất phát từ đó.

NHƯNG ... Hệ điều hành của tôi (CentOS) đã được cài đặt lại. .

+0

Bạn có thể chia sẻ 6 ký tự đầu tiên của các url 'git remote -v' cho nguồn gốc, không. giao thức được sử dụng - http, https, ssh hoặc git? –

Trả lời

3

tôi đã thiết lập proxy http trong biến môi trường http_proxy (Git Bash trên Windows), nhưng chỉ thiết lập proxy trong% HOME%/my gitconfig làm việc:

[http] 
    proxy = http://USERNAME:[email protected]:PORT 
+1

Biến môi trường phân biệt chữ hoa chữ thường và nó được viết hoa dưới dạng 'http_proxy'. (Một số phần mềm của khóa học xử lý cả hai, nhưng một số thì không!) –

25

Nếu bạn đang sử dụng https: chứ không phải là git: cho bản sao của bạn, có thể là mã vạch trên chứng chỉ CA, nghĩa là bạn không có bản sao chứng chỉ trung gian để xác minh kết nối SSL của mình. Tôi đã chạy vào điều này vào một vài dịp khác nhau. Thông thường với các bản phân phối Linux dựa trên debian. Hãy thử

git config --global http.sslVerify false 

và sau đó sao chép lại. Nếu bản sao hoạt động, đó là những gì đang xảy ra. Tuy nhiên đây là một giải pháp tồi, tất nhiên là tắt xác minh SSL, điều này làm cho việc sử dụng HTTPS có phần vô nghĩa và khiến bạn dễ bị tấn công man-in-the-middle.

Những gì bạn cần làm là tải về các gói Giấy chứng nhận CA đối với bất cứ hệ điều hành bạn đang ở trên, dưới Linux (cũng Debian/Ubuntu) nó sẽ có lẽ là một cái gì đó giống như

apt-get install ca-certificates 

sau đó

git config --global http.sslVerify true 
git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt 

mặc dù đường dẫn đến tệp chứng chỉ của bạn có thể khác nhau tùy thuộc vào phiên bản hệ điều hành.

Điều này sẽ làm cho nó hoạt động.

+1

FYI Câu trả lời này hoạt động trên Linux được nhúng vào BeagleBone. –

+0

Điều khác bạn cần làm trên Beaglebone là bật ntp. Linux của Angstrom không được cài đặt ntp và Beaglebone không có đồng hồ dự phòng. Điều đó có nghĩa là ngày được đặt khi khởi động đến ngày 1 tháng 1 năm 2000.Điều này gây ra tất cả các loại sự cố, bao gồm việc tạo chứng chỉ SSL không hợp lệ. –

0

Tôi gặp lỗi tương tự, nhưng hoàn toàn khác với vấn đề được đề cập trong các câu trả lời còn lại. Tôi đã cố gắng sao chép kho lưu trữ trên linux:

git clone http://xxx/scm/xxx/xxx.git 
Initialized empty Git repository in /opt/git/xxx/.git/ 
Password: 
error: Failed connect to xxx:80; Operation now in progress while accessing http://xxx.git/info/refs 

fatal: HTTP request failed 

Đó là tất cả do quyền sai đối với thư mục - nhưng git thay vì một số lỗi quyền ném yêu cầu HTTP không thành công. Vì vậy, nếu ai đó sẽ gặp phải vấn đề tương tự - hãy kiểm tra quyền truy cập thư mục!

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