หลังจากไปกว่าหลายสิบโพสต์ SO, บล็อก, ฯลฯ ผมพยายามออกทุกวิธีและนี่คือสิ่งที่ฉันมาด้วย ครอบคลุมทุกอย่าง
เหล่านี้ล้วนเป็นวิธีการและเครื่องมือที่คุณสามารถรับรองความถูกต้องปลอดภัยคอมไพล์ที่จะโคลนพื้นที่เก็บข้อมูลได้โดยไม่ต้องใส่รหัสผ่านของการโต้ตอบพร้อมท์
- คีย์สาธารณะ SSH
- โทเค็นการเข้าถึง API
- GIT_ASKPASS
- .gitconfig แทนของ
- .gitconfig [หนังสือรับรอง]
- .git-ข้อมูลประจำตัว
- .netrc
- โบนัส: ทำงานร่วมกับแพ็คเกจส่วนตัว
- node / npm package.json
- ข้อกำหนดของ python / pip / eggs.txt
- อัญมณีพลอยทับทิม
- golang go.mod
ตัวเลือกที่ดีที่สุดสำหรับการไม่มีที่เก็บข้อความธรรมดา
จากสิ่งที่ถามที่นี่ทั้งคีย์ SSH GIT_ASKPASS
หรือการgit credential store
ใช้ตัวจัดการพวงกุญแจ OS อาจเป็นตัวเลือกที่ดีที่สุด
เนื่องจาก GIT_ASKPASS น่าจะเป็นที่เข้าใจน้อยที่สุดของ 3 ฉันจะให้รายละเอียดที่นี่ - และคนอื่น ๆ อยู่ในสูตร
GIT_ASKPASS
วิธีสร้างGIT_ASKPASS
สคริปต์:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
วิธีใช้งาน:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
สคริปต์รับ stdin ในรูปแบบของ:
Password for 'scheme://host.tld':
สคริปต์ได้รับ ENV ของ Git เช่น:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
รายละเอียดเพิ่มเติมในcheatsheet
git remote set-url origin https://host.com/name/.git