Sau khi xem qua hàng tá bài viết SO, blog, v.v., tôi đã thử mọi phương pháp, và đây là những gì tôi nghĩ ra. Nó bao gồm MỌI THỨ.
Đây là tất cả các cách và công cụ để bạn có thể xác thực git một cách an toàn để sao chép kho lưu trữ mà không cần dấu nhắc mật khẩu tương tác .
- Khóa công khai SSH
- Mã thông báo truy cập API
- GIT_ASKPASS
- .gitconfig thay thế
- .gitconfig [thông tin xác thực]
- .git-thông tin đăng nhập
- .netrc
- Phần thưởng: Hoạt động với các gói riêng
- nút / npm gói.json
- python / pip / trứng request.txt
- đá quý ruby
- golang go.mod
Tùy chọn tốt nhất để không lưu trữ bản rõ
Từ những gì được hỏi ở đây, hoặc Khóa SSH GIT_ASKPASS
, hoặc git credential store
sử dụng trình quản lý Keychain của hệ điều hành có thể là lựa chọn tốt nhất.
Vì GIT_ASKPASS có lẽ ít được hiểu nhất trong số 3, nên tôi sẽ nói chi tiết ở đây - và những cái khác nằm trong chiếc áo choàng.
GIT_ASKPASS
Cách tạo GIT_ASKPASS
tập lệnh:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Làm thế nào để sử dụng nó:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
Kịch bản nhận stdin dưới dạng:
Password for 'scheme://host.tld':
Kịch bản nhận các ENV của Git, chẳng hạn như:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Xem thêm chi tiết trong cheatsheet .
git remote set-url origin https://host.com/name/.git