Bạn không cần proxy Git toàn cục chỉ vì một dự án cần kết nối khác. Checkout hiện có có cấu hình cục bộ riêng, nên có thể giữ thay đổi trong kho đó.

Các ví dụ dùng lệnh git config set/get/unset hiện hành. Thư mục dự án, URL remote và IP tài liệu đều là giá trị thay thế. Với phép thử kho công khai nơi cho phép proxy công khai, chọn ứng viên từ danh sách proxy HTTP.

git -C project config set --local http.proxy http://203.0.113.10:8080
git -C project ls-remote origin

URL proxy gồm lược đồ truyền tải. Remote HTTPS có thể dùng proxy HTTP thường hỗ trợ CONNECT; lược đồ HTTPS của remote không đòi đổi URL proxy sang HTTPS.

Kiểm tra Git thực sự chọn gì

Nếu kết quả bất ngờ, kiểm tra giá trị được chọn cho URL remote thực:

git -C project config get --show-origin \
  --url=https://example.com/team/project.git http.proxy

Dùng remote HTTPS thật trong truy vấn đó. Git có thể có thiết lập hệ thống, người dùng, kho, dòng lệnh và riêng cho URL. Chỉ nhìn giá trị http.proxy toàn cục có thể bỏ sót quy tắc cụ thể hơn. Đầu ra nguồn gốc giúp xác định tệp hoặc nguồn dòng lệnh đứng sau kết quả.

Thiết lập cục bộ áp dụng cho truy cập HTTP từ kho đó, không chỉ một nhánh. Kho có nhiều remote HTTP vì thế có thể dùng nó cho nhiều remote hơn cái đầu tiên đã thử. Có thiết lập HTTP riêng cho URL nếu cần khớp hẹp hơn.

Trước khi có checkout

Với clone ban đầu, chọn phần ghi đè có cần duy trì hay không; để chỉ áp dụng cho lần gọi Git đó, dùng:

git -c http.proxy=http://203.0.113.10:8080 \
  clone https://example.com/team/project.git

Ghi đè dòng lệnh không tự trở thành mục cấu hình vĩnh viễn trong checkout mới. Đặt giá trị cục bộ sau đó nếu các lần fetch sau cần dùng tuyến ấy.

Remote SSH là trường hợp khác

Remote bắt đầu bằng git@host: hoặc ssh:// dùng SSH. Thiết lập proxy HTTP của Git không đổi nó thành truyền HTTP. Kiểm tra cơ chế truyền của remote trước khi thay IP proxy đang hoạt động chỉ vì tác vụ SSH vẫn lỗi.

Khi không còn muốn ghi đè cục bộ, chỉ xóa khóa đó:

git -C project config unset --local http.proxy

Xóa khóa khiến cấu hình thích hợp từ nguồn khác có hiệu lực trở lại. Đây không phải lệnh xóa mọi thiết lập proxy trên máy.

Bài viết liên quan