ฉันจะหลีกเลี่ยงข้อกำหนดของชื่อผู้ใช้และรหัสผ่านในทุก ๆ การพุชได้อย่างไร


317

ฉันgit pushทำงานกับที่เก็บ Git ระยะไกล

ทุกคนpushจะแจ้งให้ผมที่จะป้อนข้อมูลและusername passwordฉันต้องการหลีกเลี่ยงทุกครั้งที่กด แต่จะกำหนดค่าให้หลีกเลี่ยงได้อย่างไร


6
มีคำตอบอยู่ที่นี่: stackoverflow.com/questions/6565357/…
kbdjockey

3
เรื่องสั้นสั้น ๆ : สำหรับ github เพียงทำตามลิงก์ทั้งสองนี้help.github.com/articles/generating-ssh-keys help.github.com/articles/changing-a-remote-s-url
JRun

สำหรับ bitbucket โปรดไปที่ลิงค์นี้
JDP

คำตอบ:


346

1. สร้างคีย์ SSH

Linux / Mac

เปิด terminal เพื่อสร้างคีย์ ssh:

cd ~                 #Your home directory
ssh-keygen -t rsa    #Press enter for all values

สำหรับ Windows

(ใช้งานได้เฉพาะในกรณีที่โปรแกรมส่งมอบมีความสามารถในการใช้ใบรับรอง / คีย์ส่วนตัว & สาธารณะ ssh)

  1. ใช้ Putty Gen เพื่อสร้างคีย์
  2. ส่งออกคีย์เป็นคีย์ SSH แบบเปิด

นี่คือคำแนะนำสำหรับ putty gen สำหรับขั้นตอนข้างต้น

2. เชื่อมโยงคีย์ SSH กับที่เก็บระยะไกล

ขั้นตอนนี้จะแตกต่างกันไปขึ้นอยู่กับการตั้งค่ารีโมตของคุณ

  • หากเป็นที่เก็บ GitHub และคุณมีสิทธิ์ระดับผู้ดูแลระบบให้ไปที่การตั้งค่าและคลิก 'เพิ่มคีย์ SSH' คัดลอกเนื้อหาของคุณ~/.ssh/id_rsa.pubลงในช่องที่มีข้อความ 'คีย์'

  • id_rsa.pubหากพื้นที่เก็บข้อมูลของคุณจะบริหารงานโดยคนอื่นให้ผู้ดูแลระบบของคุณ

  • หากที่เก็บข้อมูลระยะไกลของคุณดูแลโดยคุณคุณสามารถใช้คำสั่งนี้ได้เช่น:

    scp ~/.ssh/id_rsa.pub YOUR_USER@YOUR_IP:~/.ssh/authorized_keys/id_rsa.pub

3. ตั้งค่ารีโมต URL ของคุณเป็นแบบฟอร์มที่รองรับ SSH 1

หากคุณทำตามขั้นตอนด้านบนแล้วและยังคงได้รับพรอมต์รหัสผ่านตรวจสอบให้แน่ใจว่า URL repo ของคุณอยู่ในแบบฟอร์ม

git+ssh://git@github.com/username/reponame.git

ตรงข้ามกับ

https://github.com/username/reponame.git

หากต้องการดู repo URL ของคุณให้เรียกใช้:

git remote show origin

คุณสามารถเปลี่ยน URL ได้ด้วย:

git remote set-url origin git+ssh://git@github.com/username/reponame.git

[1] ส่วนนี้ประกอบด้วยคำตอบจากEric P


3
ฉันวิ่งขั้นตอนที่ 1 และขั้นตอนที่ 2 บน Ubuntu แต่ก็ยังขอ u_id รหัสผ่าน ฉันก็วิ่ง: ssh -T git@github.com ยังเหมือนเดิม. จะทำอย่างไร?
Radhika

4
@Rads คุณลองคำตอบอื่น ๆ โดยEric Pหรือไม่
yo '

2
@dialex เขาหมายถึงบุคคลที่ดูแลที่เก็บ git ระยะไกล
แต่งเพลง

5
git remote set-url origin git + ssh: //git@github.com/username/reponame.git คำสั่งนี้มีประโยชน์สำหรับฉัน
ปัญญาประดิษฐ์

2
สิ่งนี้ใช้ได้กับฉันgit remote set-url origin git@github.com:/username/projectname.git
Kurt

181

การตรวจสอบสิทธิ์อย่างถาวรด้วยที่เก็บ Git

รันคำสั่งต่อไปนี้เพื่อเปิดใช้งานการแคชหนังสือรับรอง

$ git config credential.helper store
$ git push https://github.com/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>

การใช้งานก็ควรระบุแคชหมดอายุ ,

git config --global credential.helper 'cache --timeout 7200'

หลังจากเปิดใช้งานการแคชข้อมูลประจำตัวก็จะถูกเก็บไว้สำหรับ7200 วินาที (2 ชั่วโมง)

หมายเหตุ:ผู้ช่วยข้อมูลรับรองจัดเก็บรหัสผ่านที่ไม่ได้เข้ารหัสบนดิสก์ภายในเครื่อง


4
ขอบคุณ คุณช่วยอธิบายได้ไหมว่าคำสั่ง config ทำอะไร? ฉันสงสัยว่าทำไมถึงไม่ขอรหัสผ่านในครั้งแรกที่ฉันกดไปที่ repo
HelloWorldNoMore

1
@vivoconunxino อาจเป็นเพราะไม่ปลอดภัยโดยเนื้อแท้ จากgitmanpage: "การใช้ตัวช่วยนี้จะจัดเก็บรหัสผ่านของคุณไม่เข้ารหัสบนดิสก์ได้รับการป้องกันโดยสิทธิ์ระบบไฟล์เท่านั้น"
cmaster - คืนสถานะโมนิก้า

15
คำตอบนี้ไม่มีคำเตือนเกี่ยวกับstoreตัวช่วยข้อมูลรับรองที่จัดเก็บรหัสผ่านไว้ในดิสก์ที่ไม่ได้เข้ารหัส
cmaster - คืนสถานะโมนิก้า

1
@DavidRTribble: ตั้งเป็นแคชหรือไม่ หรือลบไฟล์ที่เกี่ยวข้องโปรดดูgit-scm.com/docs/git-credential-store
serv-inc

1
@DavidRTribble: ดีกว่า:git config --unset credential.helper
serv-inc

116

หากคุณตั้งค่าคีย์ SSH แล้วและยังได้รับพรอมต์รหัสผ่านตรวจสอบให้แน่ใจว่า URL repo ของคุณอยู่ในแบบฟอร์ม

git+ssh://git@github.com/username/reponame.git

ตรงข้ามกับ

https://github.com/username/reponame.git

หากต้องการดู repo URL ของคุณให้เรียกใช้:

git remote show origin

คุณสามารถเปลี่ยน URL ได้git remote set-urlเช่น:

git remote set-url origin git+ssh://git@github.com/username/reponame.git

นี่คือสิ่งที่แก้ไขปัญหาของฉันหลังจากที่ฉันใช้git initในพื้นที่แล้วพยายามผลักดันหลังจากเพิ่มรีโมตจาก repo ใหม่บนเว็บไซต์ GitHub
sheldonkreger

1
ไม่แน่ใจว่าทำไมนี่ไม่ใช่ส่วนหนึ่งของคำตอบที่ยอมรับ ขอบคุณ!
jwalk

1
คำตอบที่ได้รับการยอมรับควรประกอบด้วยคำตอบที่ยอมรับจริงบวกกับคำตอบนี้
Puce

3
คุณสามารถละเว้น "git + ssh: //" และใช้เพียงgit@github.com/username/reponame.git
Ivan Shulev

1
@IvanShulev ฉันได้ลองครั้งแรกโดยไม่ต้องคอมไพล์ + SSH และไม่ได้ทำงาน
Antonello

40

เพียงใช้--repoตัวเลือกสำหรับคำสั่ง git push แบบนี้:

$ git push --repo https://name:password@bitbucket.org/name/repo.git

37
หรือคุณสามารถตั้งค่านี้ตามค่าเริ่มต้นด้วยgit remote set-url origin https://name:password@github.com/repo.git
ACyclic

ฉันทราบว่าการตั้งค่า URL เป็นเพียงการใช้name@github.com/....gitงานเช่นกันหากคุณไม่รังเกียจที่จะถูกใช้เป็นรหัสผ่านในแต่ละครั้ง
timday

สำหรับผู้ใช้ GitHub git push --repo https://github.com/Username/repo มันจะทำงานได้โดยไม่ต้องมีการ.git ขยาย
Pe Dro

24

ออมทรัพย์ไปเรื่อย ๆ

คุณสามารถใช้git-credential-storeผ่าน

git config credential.helper store

ซึ่งเก็บรหัสผ่านของคุณที่ไม่ได้เข้ารหัสในระบบไฟล์ :

การใช้ตัวช่วยนี้จะจัดเก็บรหัสผ่านของคุณที่ไม่ได้เข้ารหัสบนดิสก์ได้รับการป้องกันโดยสิทธิ์ระบบไฟล์เท่านั้น หากนี่ไม่ใช่การแลกเปลี่ยนความปลอดภัยที่ยอมรับได้ให้ลอง git-credential-cache หรือค้นหาผู้ช่วยเหลือที่รวมเข้ากับที่เก็บข้อมูลที่ปลอดภัยซึ่งระบบปฏิบัติการของคุณจัดทำ

ด้วยการหมดเวลา

ใช้git-credential-cacheซึ่งโดยปกติแล้วจะเก็บรหัสผ่านไว้เป็นเวลา 15 นาที

git config credential.helper cache

เพื่อตั้งค่าการหมดเวลาที่แตกต่างกันใช้--timeout(ที่นี่ 5 นาที)

git config credential.helper 'cache --timeout=300'

การบันทึกที่ปลอดภัยอย่างไม่มีกำหนด (OS X และ Windows)

  • หากคุณใช้ Mac Git จะมาพร้อมกับโหมด "osxkeychain"ซึ่งจะเก็บข้อมูลรับรองไว้ในพวงกุญแจที่ปลอดภัยซึ่งเชื่อมต่อกับบัญชีระบบของคุณ วิธีนี้เก็บข้อมูลประจำตัวไว้ในดิสก์และจะไม่มีวันหมดอายุ แต่จะเข้ารหัสด้วยระบบเดียวกับที่จัดเก็บใบรับรอง HTTPS และเติมอัตโนมัติ Safari git config --global credential.helper osxkeychainเล่นต่อไปในบรรทัดคำสั่งจะเปิดใช้งานคุณลักษณะนี้: คุณจะต้องจัดเก็บข้อมูลรับรองไว้ใน Keychain โดยใช้แอป Keychain เช่นกัน
  • หากคุณใช้ Windows คุณสามารถติดตั้งผู้ช่วยที่เรียกว่า "Git Credential Manager สำหรับ Windows" สิ่งนี้คล้ายกับตัวช่วย“ osxkeychain” ที่อธิบายไว้ข้างต้น แต่ใช้ Windows Credential Store เพื่อควบคุมข้อมูลที่ละเอียดอ่อน มันสามารถพบได้ที่https://github.com/Microsoft/Git-Credential-Manager-for-Windows [เน้นเหมือง]

สำหรับ Windows credential.helper cacheไม่ทำงาน git config --global credential.helper wincredมันควรจะเป็น
Paulo Merson

1
สิ่งนี้มีประโยชน์เมื่อคุณถูกบังคับให้ใช้ https คอมไพล์ของฉันบนเซิร์ฟเวอร์แฮงค์ถ้าฉันใช้ ssh ดังนั้นฉันไม่มีตัวเลือกของคีย์ SSH
Sridhar Sarnobat

8

ฉันใช้ลิงค์ https ( https://github.com/org/repo.git) แทนลิงค์ ssh;

git@github.com:org/repo.git  

การสลับแก้ปัญหาสำหรับฉัน!


6

ขั้นตอนที่ 1 -

สร้างคีย์ SSH บนระบบ linux ของคุณโดยใช้คำสั่งด้านล่าง

ssh-keygen -t rsa -b 4096 -C "your_email"

มันจะถามรหัสผ่านและชื่อไฟล์ (ค่าเริ่มต้นจะเป็น ~ / .ssh / id_rsa, ~ / .ssh / id_rsa.pub)

ขั้นตอนที่ 2 -

เมื่อไฟล์ถูกสร้างให้เพิ่มพับลิกคีย์สาธารณะ id_rsa.pub ไปยังส่วน github account ssh

ขั้นตอนที่ 3 -

ในเครื่องของคุณให้เพิ่ม private key id_rsa ไปยัง ssh-agent โดยใช้คำสั่งด้านล่าง

ssh-add ~/.ssh/id_rsa 

ขั้นตอนที่ 4 -

ตอนนี้เพิ่ม url ระยะไกล git@github.com: user_name / repo_name.git ไปยัง repo git ในพื้นที่โดยใช้คำสั่งด้านล่าง

git remote remove origin
git remote add origin git@github.com:user_name/repo_name.git

แค่นั้นแหละ.


5

โยงไคลเอนต์ git ของคุณไปยังที่เก็บข้อมูลรับรอง OS ของคุณ ตัวอย่างเช่นใน Windows คุณผูกตัวช่วยข้อมูลประจำตัวเพื่อทำสิ่งต่อไปนี้:

git config --global credential.helper wincred

มีวิธีข้ามการพิมพ์รหัสผ่านเมื่อใช้ https: // บน GitHub หรือไม่


5

บนระบบปฏิบัติการ Windows ให้ใช้สิ่งนี้แทนสิ่งนี้ใช้ได้กับฉัน:

https://{Username}:{Password}@github.com/{Username}/{repo}.git

เช่น

git clone https://{Username}:{Password}@github.com/{Username}/{repo}.git

git pull https://{Username}:{Password}@github.com/{Username}/{repo}.git

git remote add origin https://{Username}:{Password}@github.com/{Username}/{repo}.git

git push origin master

5

แค่ต้องการชี้ให้เห็นบางสิ่งบางอย่างเกี่ยวกับการแก้ปัญหาดังกล่าวข้างต้นหลายครั้ง

git config credential.helper store

คุณสามารถใช้คำสั่งใด ๆ ที่ต้องใช้รหัสผ่านหลังจากนี้ คุณไม่จำเป็นต้องผลักดัน (ตัวอย่างเช่นคุณสามารถดึง) หลังจากนั้นคุณไม่จำเป็นต้องพิมพ์ชื่อผู้ใช้ / รหัสผ่านอีกครั้ง


3

ฉันใช้คำตอบที่พาเวลแนะนำและใช้ได้กับฉัน ความแตกต่างของฉันคือการทำในขณะที่ฉันเพิ่มระยะไกลเช่น:git remote add (alias) https://(name:password)@github.com/(the remote address).git


3

การรันคำสั่งด้านล่างแก้ปัญหาให้ฉัน

git config --global credential.helper wincred

โปรดอ้างอิงเอกสาร GitHub ด้านล่าง:

https://help.github.com/articles/caching-your-github-password-in-git/

3

เท่าที่ผมรู้ว่ามีเพียงสองปลอดภัยวิธี: SSHหรือpasswd เข้ารหัสโดยใช้คีย์สโตร์

SSH

  1. เข้าสู่ GitHub ของคุณ;
  2. เยี่ยมชม: https://github.com/settings/keys ;
  3. คีย์ SSH ใหม่
  4. cat ~/.ssh/id_rsa.pubวางมันมีชื่อและบันทึกไว้ (ถ้าคุณไม่มีไฟล์ดังกล่าวสร้างหนึ่งสำหรับตัวเองโดยssh-keygen -t rsa- เพียงแค่ใส่สำหรับพรอมต์ทั้งหมด);
  5. ไปที่ที่เก็บในเครื่องของคุณและอัพเดตรีโมตของคุณโดยgit remote set-url origin git+ssh://git@github.com/username/reponame.git- คุณสามารถตรวจสอบได้ก่อนgit remote -v);
  6. ไปเลยtouch t; git add t; git commit -m "test"; git pushและยืนยันว่าใช่แล้วเพลิดเพลินไปกับโลกที่ไม่มีรหัสผ่าน

passwd ENCRYPTED โดยใช้ที่เก็บคีย์

หากคุณเพียงแค่ใช้git config --global credential.helper storeตามที่คนอื่น ๆ กล่าวถึงรหัสผ่านที่ไม่ได้เข้ารหัสของคุณจะถูกเก็บไว้ในรูปแบบข้อความธรรมดา~/.git-credentialsซึ่งไม่ปลอดภัยเท่าที่ควร

ลองเข้ารหัสมัน

sudo apt-get install libgnome-keyring-dev
sudo make --directory=/usr/share/doc/git/contrib/credential/gnome-keyring
git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

git config --global credential.helper store

https://git@github.com/username/reponame.gitในกรณีนี้คุณกำลังใช้


2

โซลูชันของฉันบน Windows:

  1. คลิกขวาที่ไดเรกทอรีเพื่อกดและเลือก "Git Bash Here"
  2. ssh-keygen -t rsa (กด Enter สำหรับค่าทั้งหมด)
  3. ตรวจสอบเทอร์มินัลสำหรับ: Your public key has been saved in /c/Users/<your_user_name_here>/.ssh/id_rsa.pub
  4. คัดลอกกุญแจสาธารณะจากไฟล์ที่ระบุ
  5. ไปที่โปรไฟล์ GitHub ของคุณ => การตั้งค่า => คีย์ SSH และ GPG => คีย์ SSH ใหม่ => วางคีย์ SSH ของคุณที่นั่น => บันทึก

2

หากพีซีของคุณปลอดภัยหรือคุณไม่สนใจเกี่ยวกับความปลอดภัยของรหัสผ่านสิ่งนี้สามารถทำได้โดยง่าย สมมติว่าที่เก็บรีโมตอยู่บน GitHub และoriginเป็นชื่อโลคัลของคุณสำหรับที่เก็บรีโมตให้ใช้คำสั่งนี้

git remote set-url --push origin https://<username>:<password>@github.com/<repo>

--pushธงเพื่อให้แน่ใจว่าการเปลี่ยนแปลงนี้ URL ของพื้นที่เก็บข้อมูลสำหรับgit pushคำสั่งเท่านั้น (คำถามที่ถามในโพสต์ต้นฉบับนั้นเกี่ยวกับgit pushคำสั่งเท่านั้นการขอชื่อผู้ใช้ + รหัสผ่านเท่านั้นสำหรับการดำเนินการพุชเป็นการตั้งค่าปกติสำหรับที่เก็บสาธารณะบน GitHub โปรดทราบว่าที่เก็บส่วนตัวบน GitHub จะต้องใช้ชื่อผู้ใช้ + รหัสผ่าน ดังนั้นสำหรับที่เก็บข้อมูลส่วนตัวคุณไม่ต้องการใช้--push flag... )

คำเตือน:สิ่งนี้ไม่ปลอดภัยอย่างแน่นอนเนื่องจาก:

  1. ISP ของคุณหรือใครก็ตามที่บันทึกการเข้าถึงเครือข่ายของคุณสามารถดูรหัสผ่านเป็นข้อความธรรมดาใน URL ได้อย่างง่ายดาย

  2. git remote show originทุกคนที่ได้รับการเข้าถึงเครื่องคอมพิวเตอร์ของคุณสามารถดูรหัสผ่านของคุณโดยใช้

นั่นเป็นสาเหตุที่การใช้คีย์ SSH เป็นคำตอบที่ยอมรับได้

แม้คีย์ SSH จะไม่ปลอดภัยโดยสิ้นเชิง ทุกคนที่สามารถเข้าถึงพีซีของคุณยังคงสามารถทำการพุชที่ที่เก็บข้อมูลของคุณหรือที่แย่กว่านั้นคือดันส่งการเปลี่ยนแปลงโค้ดของคุณ (การคอมมิชต์แบบพุชทั้งหมดจะเห็นได้ชัดเจนใน GitHub แต่ถ้ามีคนต้องการเปลี่ยนรหัสของคุณอย่างลับๆพวกเขาสามารถคอมมิชชัน--amendก่อนหน้าโดยไม่เปลี่ยนข้อความการคอมมิทและจากนั้นบังคับมัน )

แต่การเปิดเผยรหัสผ่านของคุณแย่ลง หากผู้โจมตีได้รับความรู้เกี่ยวกับชื่อผู้ใช้ + รหัสผ่านพวกเขาสามารถทำสิ่งต่าง ๆ เช่นล็อคคุณออกจากบัญชีของคุณลบบัญชีของคุณลบที่เก็บถาวร ฯลฯ


หรือเพื่อความง่ายและปลอดภัยคุณสามารถระบุชื่อผู้ใช้ของคุณใน URL เท่านั้นดังนั้นคุณจะต้องพิมพ์รหัสผ่านทุกครั้งที่คุณgit pushแต่คุณจะไม่ต้องให้ชื่อผู้ใช้ของคุณทุกครั้ง (ฉันค่อนข้างชอบวิธีนี้การพิมพ์รหัสผ่านให้ฉันหยุดคิดทุกครั้งที่ฉันgit pushดังนั้นฉันจึงไม่ได้git pushตั้งใจ)

git remote set-url --push origin https://<username>@github.com/<repo>

เกิดอะไรขึ้นถ้ารหัสผ่านมีรหัสผ่าน@กำลังคิดคำสั่งหลังจาก @ เป็นส่วนหนึ่งของเซิร์ฟเวอร์ git?
ซิงห์

หากรหัสผ่านของคุณมี '@' คุณอยู่ที่นี่ด้วยตัวเองขออภัย คุณสามารถเปลี่ยนรหัสผ่านของคุณ?
radfast

จำเป็นต้องเพิ่มคำขอเปลี่ยนรหัสผ่านเนื่องจากฉันกำลังดำเนินการอัตโนมัติสำหรับการรวมอย่างต่อเนื่องที่มีบัญชีบริการ (ไม่ใช่ส่วนบุคคล) ตอนนี้ใช้ SSH Keys สำหรับการเข้าสู่ระบบที่ปลอดภัย
Pranav Singh

1

ทั้งหมดนี้เกิดขึ้นเพราะคอมไพล์ไม่ได้ให้ตัวเลือกในคำสั่ง clone / pull / push / fetch เพื่อส่งหนังสือรับรองผ่านไพพ์ แม้ว่าจะให้ credential.helper แต่จะเก็บไว้ในระบบไฟล์หรือสร้าง daemon เป็นต้นบ่อยครั้งที่หนังสือรับรองของ GIT นั้นเป็นระดับระบบและ onus เพื่อให้ปลอดภัยอยู่ในแอปพลิเคชันที่เรียกใช้คำสั่ง git ไม่ปลอดภัยอย่างแน่นอน

นี่คือสิ่งที่ฉันต้องแก้ไข 1. เวอร์ชัน Git (git --version) ควรมากกว่าหรือเท่ากับ 1.8.3

โคลน GIT

สำหรับการโคลนให้ใช้ "git clone URL" หลังจากเปลี่ยน URL จากรูปแบบ http: // {myuser} @ {my_repo_ip_address} / {myrepo_name.git} เป็น http: // {myuser}: {myprep} /{myrepo_name.git}

จากนั้นล้างที่เก็บรหัสผ่านดังที่แสดงไว้ในหัวข้อถัดไป

การกวาดล้าง

ตอนนี้มันจะหายไปแล้ว

  1. เขียนรหัสผ่านในแหล่งกำเนิดระยะไกลคอมไพล์ พิมพ์ "git remote -v" เพื่อดูความเสียหาย แก้ไขสิ่งนี้ด้วยการตั้งค่า URL ต้นทางระยะไกลโดยไม่มีรหัสผ่าน "git ระยะไกล set_url กำเนิด http: // {myuser} @ {my_repo_ip_address} / {myrepo_name.git}"
  2. เขียนรหัสผ่านใน. git / logs ในที่เก็บ แทนที่อินสแตนซ์ทั้งหมดของ pwd โดยใช้คำสั่ง unix เช่น find .git / logs -exec sed -i 's / {my_url_with_pwd} // g' {} \; ที่นี่ {my_url_with_pwd} เป็น URL ที่มีรหัสผ่าน เนื่องจาก URL มีเครื่องหมายสแลชจึงต้องมีการหลีกเลี่ยงโดยเครื่องหมายสแลชสองตัวย้อนกลับ ตัวอย่างเช่นสำหรับ URL http: // kris: passs123@192.168.0.1/proj.git -> http: \\ / \\ / kris: passs123@192.168.0.1 \\ / proj.git

หากแอปพลิเคชันของคุณใช้ Java เพื่อออกคำสั่งเหล่านี้ให้ใช้ ProcessBuilder แทน Runtime หากคุณต้องใช้ Runtime ให้ใช้ getRunTime (). exec ซึ่งรับสตริง String เป็นอาร์กิวเมนต์ด้วย / bin / bash และ -c เป็นอาร์กิวเมนต์แทนที่จะเป็นสตริงที่ใช้ String เดี่ยวเป็นอาร์กิวเมนต์

GET FETCH / PULL / PUSH

  1. ตั้งรหัสผ่านใน URL ระยะไกล Git เป็น: "git ระยะไกล set_url กำเนิด http: // {myuser}: {mypwd} @ {my_repo_ip_address} / {myrepo_name.git}"
  2. เรียกใช้คำสั่ง git fetch / push / pull คุณจะไม่ได้รับแจ้งให้ใส่รหัสผ่าน
  3. ทำการกวาดล้างเช่นเดียวกับในส่วนก่อนหน้า อย่าพลาด.

0

คุณจะต้องติดตั้งคีย์ส่วนตัว SSH คุณสามารถตรวจสอบนี้หน้าวิธีการทำติดตั้งบน Mac ถ้าคุณอยู่ในลินุกซ์ควรจะเกือบจะเหมือนกันใน Windows คุณจะต้องเครื่องมือเช่นMSYS


0

ปรากฏว่าอย่างน้อยเมื่อใช้ TortoiseGIT บน Windows เป็นไปได้ที่จะสร้างคีย์ SSH และโอนไปยังเซิร์ฟเวอร์ GIT โดยใช้เพียง:

> ssh-keygen.exe
> ssh-copy-id [username]@[GIT_server]
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.