เปลี่ยนรหัสผ่าน GitHub แล้วไม่สามารถกดกลับไปที่รีโมทได้อีกต่อไป


111

หลังจากที่ฉันเปลี่ยนรหัสผ่าน GitHub ฉันไม่สามารถกดไปที่รีโมทได้:

$ git push origin master
remote: Invalid username or password.

มีเพียงการโคลนที่เก็บอีกครั้งหรือไม่


เพียงแค่ถอดและเพิ่มรีโมทอีกครั้ง
onmyway133

1
จริงๆ? "เพียงแค่ถอดและเพิ่มรีโมทอีกครั้ง"? การเริ่มต้นจากศูนย์ไม่สะดวกและเกิดข้อผิดพลาดได้ง่ายในการดำเนินการบางอย่าง
Jason S

1
นอกจากนี้ยังสามารถเกิดขึ้นได้หลังจากเปิดใช้งานการตรวจสอบสิทธิ์แบบสองปัจจัยในกรณีนี้คุณควรปฏิบัติตามคำแนะนำที่นี่: stackoverflow.com/a/34919582/2898283
mechatroner

@JasonS การเพิ่มรีโมทใหม่แทบจะไม่ "เริ่มต้นใหม่" สิ่งนี้จะแก้ไขเฉพาะสำเนาภายในของสาขาระยะไกลซึ่งคุณไม่ได้แก้ไขโดยตรงอยู่ดี สาขาในพื้นที่ทั้งหมดจะยังคงเหมือนเดิมแม้ว่าฉันไม่แน่ใจว่าการติดตามจะได้รับผลกระทบหรือไม่
jpmc26

@ jpmc26 ฉันไม่ได้หมายถึงเนื้อหาที่เก็บฉันหมายถึงการเพิ่ม URL อีกครั้ง
Jason S

คำตอบ:


187

หากคุณเปลี่ยนรหัสผ่านของรีโมตเท่านั้นไม่ใช่ชื่อผู้ใช้ให้ลองใช้คำสั่งต่อไปนี้เพื่อตรวจสอบข้อมูลของรีโมต: -

ต้นกำเนิดการแสดงระยะไกล git

สิ่งนี้จะถามรหัสผ่านของคุณสำหรับผู้ใช้คอมไพล์ที่ระบุกรอกให้ถูกต้องแล้วลอง: -

git ดึง

หรือ,

git push

ควรใช้งานได้เว้นแต่คุณจะต้องเปลี่ยนสิ่งอื่นเช่นชื่อผู้ใช้หรือ URL ระยะไกลคุณสามารถดูเอกสาร Git ต่อไปนี้: -

https://help.github.com/articles/setting-your-username-in-git/

https://help.github.com/articles/changing-a-remote-s-url/


9
มันใช้ได้กับฉัน git remote show originแสดงให้เห็น
Lazaro Fernandes Lima Suleiman

14
น่าสนใจ - git remote show originไม่ได้แจ้งให้ฉันทราบ แต่เพียงแค่กระตุ้นฉันshowดังนั้นฉันคิดว่ามันล้มเหลว (ในสิ่งที่ฉันต้องการให้ทำ) แต่ในกรณีนี้ฉันลองแล้วgit push origin masterและนั่นก็ทำให้ฉันรู้ ดังนั้น ... ฉันยังคงอยู่ในที่ที่ฉันต้องการ :)
dwanderson

1
ลองใช้ IntelliJ และ Android Studio แล้วทั้งคู่ไม่ได้ผลหากไม่รีสตาร์ทอาจเป็นเพราะข้อมูลประจำตัวถูกแคช ฉันแก้ไขคำตอบเพื่อสะท้อนสิ่งนี้
Oliver Hausler

2
ทำงานตามที่อธิบายไว้สำหรับฉัน
nabrown

2
ทำงานตามที่คาดไว้บน Mac ควรได้รับการยอมรับคำตอบ
Aakanksha

38

เพื่ออัปเดตรหัสผ่านใน Terminal ของคุณ ลองใช้คำสั่งด้านล่างมันจะแจ้งรหัสผ่านให้คุณอีกครั้ง

git push -u origin master

37

kenu.heo OPได้ทำงานแก้ไขปัญหาโดยการเอาแล้ว re-โคลนซื้อคืน

แต่สำหรับคนอื่น ๆ :

ขึ้นอยู่กับระบบปฏิบัติการเวอร์ชันคอมไพล์และโปรโตคอลที่คุณใช้

ทั้งนี้ขึ้นอยู่กับระบบปฏิบัติการที่คุณมีวิธีในการแคชข้อมูลประจำตัวของคุณ ( OSX พวงกุญแจบน Mac , ผู้ช่วยการรับรอง Netrc บน Windows หรือ Linux ) และที่อาจอธิบายได้ว่าทำไมการผลักดันของคุณไม่ทำงานหลังจากเปลี่ยนรหัสผ่านของคุณ GitHub
สำหรับพวงกุญแจ, คุณจะต้องรีเซ็ตรหัสผ่านที่เก็บไว้ในนั้น

ปัญหารหัสผ่านนั้นแนะนำว่าคุณกำลังใช้ https url (ไม่ใช่ ssh ซึ่งจะขึ้นอยู่กับคีย์ ssh สาธารณะ / ส่วนตัวและจะไม่ได้รับอิทธิพลจากรหัสผ่านบัญชี GitHub เนื่องจากคีย์ SSH สาธารณะที่ลงทะเบียนกับบัญชี GitHub ของคุณ จะไม่มีการเปลี่ยนแปลง)

ตรวจสอบด้วยไฟล์git remote -v.

คุณสามารถบังคับให้คอมไพล์ใช้ล็อกอิน GitHub ของคุณด้วย:

git remote set-url origin https://Username@github.com/Username/MyRepo.git

(แทนที่ ' Username' และ ' MyRepo.git' ด้วยค่าของคุณเอง)

จากนั้นลองอีกครั้งเพื่อผลักดันควรขอรหัสผ่าน GitHub ของคุณ ใส่อันใหม่

หากไม่ได้ผลให้ตรวจสอบว่าคุณได้เปิดใช้งาน 2FA (2-Form Authentication) หรือไม่ หากเป็นเช่นนั้นคุณต้องสร้าง PTA (Personal Token Access)
ดูเพิ่มเติมที่ " กำหนดค่าไคลเอนต์ Git เช่น GitHub สำหรับ Windows เพื่อไม่ขอการตรวจสอบสิทธิ์ "


ขอบคุณฉันใช้ MacOSX, git 1.8.x ฉันแก้ไขด้วยการลบ repo ในพื้นที่แล้วปรับเอน
kenu.heo

2
@ kenu.heo โอเค. ฉันได้แก้ไขคำตอบเพื่อรวมข้อสรุปของคุณแล้ว แต่ฉันได้เพิ่มองค์ประกอบที่สามารถช่วยเหลือผู้อื่นได้ด้วย
VonC

git remote set-url origin https://github.com/shared_repo/shared_repo.gitทำงานให้ฉันบน Windows จาก Git Shell
Choylton B.Higginbottom

ทำงานบน Ubuntu 16.04 LTS
sd

22

บนระบบ Windows ไม่มีขั้นตอนใดที่ใช้ได้ผลสำหรับฉันปัญหาคือข้อมูลประจำตัวจะถูกเก็บไว้ใน Windows Credentials Manager

คุณสามารถไปที่Control Panel -> User Accounts -> Credential Manager -> Windows Credentials

ภายใต้ข้อมูลรับรองทั่วไปคุณจะพบ URL คอมไพล์ของคุณขยายส่วนที่เลือกแล้วคลิกแก้ไข

เมื่อแก้ไขแล้วให้ทริกเกอร์ git push อีกครั้งและควรใช้งานได้

ที่มาของข้อมูล: - ลบข้อมูลรับรองออกจาก Git


1
ฉันสามารถยืนยันได้เช่นเดียวกันใน Windows 10
tmsss

สิ่งนี้ได้ผลสำหรับฉัน Windows จัดเก็บข้อมูลประจำตัวของคอมไพล์และเมื่ออัปเดตรหัสผ่านสำหรับ Windows บัญชี git อย่างเป็นทางการของฉันไม่สามารถซิงค์ได้
Krishna Oza

16

จากสิ่งที่ฉันเคยพบคุณเพียงแค่ป้อน remote-addrอีกครั้ง

และคอมไพล์จะถาม usr / password สำหรับอันใหม่แทนที่จะเงียบและใช้อันที่เลิกใช้แล้ว

ดูรีโมทของคุณค้นหาว่าคุณต้องการเปลี่ยนอันไหน

>git remote  
github
gitcafe
company

ตัวอย่างเช่นหากคุณเปลี่ยนรหัสผ่าน repo ของ บริษัท คุณสามารถทำได้:

>git remote remove company

นี้จะไม่ได้สัมผัสโฟลเดอร์ของคุณ , จะไม่สัมผัสกระทำของคุณ นี่เป็นเพียงการลบสตริง url จาก git

จากนั้นเพิ่ม url นี้อีกครั้ง:

>git remote add company https://git.AyCramba.com/xxx.git

กดไปที่:

>git push company master
username for 'https://git.AyCramba.com':
password for 'https://git.AyCramba.com':

จากนั้นจะเริ่มผลักดัน

หวังว่าจะช่วยได้


1
git remote set-urlผมกล่าวถึงในคำตอบของฉันไม่ได้ลบ + เพิ่ม
VonC

3

ชื่อผู้ใช้และรหัสผ่านอาจถูกเก็บไว้ใน Windows Credential Manger ตรวจสอบและอัปเดตที่นั่นหากจำเป็น

(ฉันรู้ว่ามันค่อนข้างชัดเจนและเรียบง่าย แต่อาจช่วยบางคนได้)


2

สำหรับฉันการรัน git บน Windows7 โดยใช้ git-bash กำลังรัน:

git push origin master

ได้ผล นั่นทำให้ Windows7 ขอเครดิตคอมไพล์ของฉันอีกครั้งจากนั้นจัดเก็บไว้ (ไม่ว่า Windows จะทำอะไรก็ตาม) เพื่ออัปเดตรหัสผ่าน


1

โอเคโพสต์ต้นฉบับค่อนข้างเก่า แต่เป็นผลการค้นหาอันดับต้น ๆ ใน Google และไม่มีคำตอบใดที่เหมาะกับฉัน โพสต์ SO และ GH อื่น ๆ อีกหลายรายการก็ใช้ไม่ได้เช่นกัน โพสต์สิ่งนี้เพื่อช่วยให้ทุกคนติดตามฉันได้ที่นี่!

สถานการณ์ของฉันแตกต่างกันเล็กน้อย: บัญชี GH ส่วนบุคคลที่ส่งไปยัง repo ของ บริษัท ส่วนตัวโดยใช้ SSH และบรรทัดคำสั่ง git บน Mac รหัสผ่านของฉันจะไม่เก็บไว้ในของฉัน.gitconfigหรือในพวงกุญแจใด ๆ credential.helperหรือในคอมไพล์

ในตัวอย่างด้านล่าง PersonalName คือบัญชี GH ของฉัน CompanyName คือ บริษัท (เจ้าของ repo บน GH) และ RepoName คือที่เก็บ

ข้อความแสดงข้อผิดพลาดเดิมของฉันแตกต่างกันบ้างเช่นกัน: git push origin masterส่งผลให้

remote: Repository not found.
fatal: repository 'https://github.com/CompanyName/RepoName.git/' not found

รีโมทใช้งานได้ก่อนที่จะเปลี่ยนรหัสผ่าน GH ของฉันและฉันไม่ต้องการลบรีโมตออกเพราะฉันมีการเปลี่ยนแปลงในเครื่องที่ฉันต้องพุช

ในที่สุดการตอบกลับโดยseveasเพื่อคำถามนี้บนGitHub ชุมชนชี้ให้ฉันในทิศทางที่เหมาะสม สิ่งสำคัญคือการเชื่อมโยงชื่อบัญชี GH ของฉันกับ repo ระยะไกล (ส่วนตัว)

สิ่งนี้ใช้ได้ผลสำหรับฉัน:

git remote set-url origin https://PersonalName@github.com/CompanyName/RepoName.git

แล้ว

git remote show origin

พร้อมกับ

Password for 'https://PersonalName@github.com': 

ฉันสามารถป้อนรหัสผ่านใหม่ดูรายละเอียดระยะไกลและทำgit push origin masterสำเร็จ


0

หากคุณติดตั้ง Github 2FA Auth คุณต้องมีโทเค็นการเข้าถึงส่วนบุคคล (แทนรหัสผ่าน github ใน git cli) ให้ทำตามคำแนะนำนี้เพื่อสร้าง: https://help.github.com/en/github/authenticating-to -github / การสร้าง-a-personal-access-token-for-the-command-line

จากนั้นทำสิ่งที่ชอบ

git หลักชำระเงิน

git pull origin <--- ณ จุดนี้คุณจะถูกถามถึงข้อมูลรับรองของคุณป้อนผู้ใช้ github ปกติของคุณและเมื่อรหัสผ่านวางโทเค็นที่สร้างขึ้นในลิงค์ด้านบน


0

คุณสามารถอัปเดตชื่อผู้ใช้และรหัสผ่านโดยคำสั่งนี้:

$ git remote set-url origin https://<USERNAME>:<PASSWORD>@github.com/path/to/repo.git

อย่าลืมเปลี่ยน USERNAME เป็นชื่อผู้ใช้ git และ PASSWORD ของคุณเป็นรหัสผ่าน git ใหม่ของคุณ

ถัดไปน่าgit pushจะเหมาะกับคุณ

เรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ในบทความนี้

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