Đã thay đổi mật khẩu GitHub, không thể quay lại điều khiển từ xa


111

Sau khi thay đổi mật khẩu GitHub, tôi không thể chuyển sang điều khiển từ xa:

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

Có chỉ tái sao chép kho lưu trữ không?


Chỉ cần loại bỏ và thêm điều khiển từ xa một lần nữa
onmyway133

1
Có thật không? "Chỉ cần xóa và thêm lại điều khiển từ xa"? Bắt đầu từ đầu rất bất tiện và dễ xảy ra lỗi trong một số thao tác.
Jason S

1
Điều này cũng có thể xảy ra sau khi kích hoạt xác thực hai yếu tố, trong trường hợp này bạn nên làm theo các hướng dẫn ở đây: stackoverflow.com/a/34919582/2898283
mechatroner

@JasonS Việc thêm lại điều khiển từ xa khó có thể "bắt đầu lại từ đầu". Điều này sẽ chỉ sửa đổi các bản sao cục bộ của các nhánh từ xa, mà bạn không thể sửa đổi trực tiếp; tất cả các chi nhánh địa phương sẽ vẫn còn nguyên vẹn, mặc dù tôi không chắc liệu việc theo dõi có bị ảnh hưởng hay không.
jpmc26

@ jpmc26 Ý tôi không phải là nội dung kho lưu trữ, ý tôi là thêm lại URL.
Jason S

Câu trả lời:


187

Nếu bạn chỉ thay đổi mật khẩu của điều khiển từ xa chứ không phải tên người dùng, thì hãy thử lệnh sau để kiểm tra thông tin của điều khiển từ xa: -

git từ xa hiển thị nguồn gốc

Thao tác này sẽ hỏi mật khẩu của bạn cho người dùng git đã cho, hãy điền chính xác và bây giờ hãy thử: -

git kéo

hoặc là,

git push

Nó sẽ hoạt động trừ khi bạn phải thay đổi những thứ khác như tên người dùng hoặc URL từ xa, bạn có thể xem tài liệu Git sau: -

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

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


9
Nó làm việc cho tôi. git remote show origincho thấy dấu nhắc
Lazaro Fernandes Lima Suleiman

14
Thú vị - git remote show originkhông nhắc nhở tôi, nó chỉ gợi ý cho tôi, showvì vậy tôi nghĩ rằng nó đã thất bại (tại những gì tôi cần nó làm). Nhưng, để đề phòng, tôi đã thử git push origin masterđiều đó đã thúc giục tôi. Vì vậy, ... tôi vẫn ở nơi tôi cần đến :)
dwanderson

1
Đã thử điều này với IntelliJ và Android Studio và cả hai đều không hoạt động nếu không khởi động lại, có thể là do thông tin đăng nhập được lưu vào bộ nhớ đệm. Tôi đã chỉnh sửa câu trả lời để phản ánh điều này.
Oliver Hausler

2
Làm việc giống như mô tả cho tôi.
nabrown

2
Hoạt động như mong đợi trên Mac. Nên được chấp nhận câu trả lời.
Aakanksha

38

Để cập nhật mật khẩu trong Terminal của bạn. Hãy thử lệnh dưới đây, nó sẽ nhắc bạn nhập lại mật khẩu.

git push -u origin master

37

Các kenu.heo OP đã làm việc xung quanh vấn đề này bằng cách loại bỏ, sau đó tái nhân bản repo.

Nhưng đối với khác:

Nó phụ thuộc vào hệ điều hành, phiên bản git và giao thức bạn đang sử dụng.

Tùy thuộc vào hệ điều hành, bạn có các cách để lưu trữ thông tin đăng nhập của mình ( OSX KeyChain trên Mac , trình trợ giúp thông tin xác thực netrc trên Windows hoặc Linux ) và điều đó có thể giải thích tại sao công cụ đẩy của bạn không hoạt động sau khi thay đổi mật khẩu GitHub.
Đối với chuỗi khóa, bạn sẽ cần đặt lại mật khẩu được lưu trữ trong đó .

Vấn đề mật khẩu đó cũng cho thấy rằng bạn đang sử dụng url https (không phải url ssh, điều này sẽ phụ thuộc vào các khóa ssh công khai / riêng tư và sẽ không bị ảnh hưởng bởi mật khẩu tài khoản GitHub, vì khóa SSH công khai được đăng ký vào tài khoản GitHub của bạn sẽ không thay đổi).

Kiểm tra điều đó bằng a git remote -v.

Bạn có thể buộc git sử dụng thông tin đăng nhập GitHub của mình bằng:

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

(thay thế ' Username' và ' MyRepo.git' bằng các giá trị của riêng bạn)

Sau đó, thử lại để đẩy, nó sẽ yêu cầu mật khẩu GitHub của bạn. Nhập cái mới.

Nếu cách này không hiệu quả, hãy kiểm tra xem bạn đã kích hoạt 2FA (Xác thực 2 mẫu) hay chưa. Nếu đúng như vậy, bạn cần tạo PTA (Quyền truy cập mã thông báo cá nhân).
Xem thêm tại "Định cấu hình máy khách Git, như GitHub cho Windows, để không yêu cầu xác thực ".


Cảm ơn, tôi sử dụng MacOSX, git 1.8.x. Tôi đã làm việc xung quanh với việc xóa repo cục bộ, sau đó rút lại nó.
kenu.heo

2
@ kenu.heo ok. Tôi đã chỉnh sửa câu trả lời để bao gồm kết luận của bạn, nhưng tôi cũng đã thêm các yếu tố có thể giúp ích cho người khác.
VonC

git remote set-url origin https://github.com/shared_repo/shared_repo.gitlàm việc cho tôi trên Windows từ Git Shell
Choylton B. Higginbottom

Hoạt động trên Ubuntu 16.04 LTS.
sd

22

Trên Hệ thống Windows, không có bước nào phù hợp với tôi, vấn đề là thông tin đăng nhập được lưu trữ trong Trình quản lý thông tin đăng nhập Windows.

Bạn có thể vào Control Panel -> User Accounts -> Credential Manager -> Windows Credentials

Trong Thông tin đăng nhập chung, bạn sẽ tìm thấy Url git của mình, mở rộng lựa chọn và nhấp vào chỉnh sửa.

Sau khi được chỉnh sửa, chỉ cần kích hoạt git push một lần nữa và nó sẽ hoạt động.

Nguồn thông tin: - Xóa thông tin đăng nhập khỏi Git


1
Tôi có thể xác nhận điều tương tự trên Windows 10.
tmsss 19/08/19

Điều này đã làm việc cho tôi. Windows đã lưu trữ thông tin đăng nhập git và khi cập nhật mật khẩu cho Windows, tài khoản git chính thức của tôi không thể syn.
Krishna Oza

16

Từ những gì tôi đã trải nghiệm, bạn chỉ cần nhập lại trình bổ sung từ xa .

Và git sẽ hỏi usr / password cho cái mới thay vì giữ im lặng và sử dụng cái không dùng nữa.

xem điều khiển từ xa của bạn, xác định vị trí bạn muốn thay đổi

>git remote  
github
gitcafe
company

ví dụ: nếu bạn đã thay đổi mật khẩu repo công ty của mình, bạn có thể làm:

>git remote remove company

Điều này sẽ không chạm vào thư mục của bạn , sẽ không chạm vào cam kết của bạn . Thao tác này chỉ xóa một chuỗi url khỏi git

Sau đó, thêm lại url này:

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

Đẩy tới nó:

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

Sau đó, nó bắt đầu đẩy

Hy vọng nó giúp.


1
Các git remote set-urltôi đề cập đến trong câu trả lời của tôi hiện một remove + add.
VonC

3

Tên người dùng và mật khẩu có thể được lưu trữ trong Windows Credential Manger. Kiểm tra và cập nhật ở đó, nếu cần.

(Tôi biết điều đó hơi rõ ràng và đơn giản, nhưng có thể giúp ích cho một số người.)


2

Đối với tôi, chạy git trên Windows7 bằng git-bash, chạy:

git push origin master

Có nó hoạt động. Điều đó đã khiến Windows7 yêu cầu lại các khoản tín dụng git của tôi và sau đó lưu trữ chúng (bất kỳ Windows nào có), để cập nhật mật khẩu.


1

Ok, bài viết gốc khá cũ, nhưng đó là kết quả hàng đầu trên Google và không có câu trả lời nào phù hợp với tôi. Một số bài đăng SO và GH khác cũng không hoạt động. Đăng bài này để giúp bất cứ ai theo dõi tôi ở đây!

Tình huống của tôi hơi khác một chút: Tài khoản GH cá nhân, chuyển sang repo Công ty riêng, sử dụng SSH và dòng lệnh git trên Mac. Mật khẩu của tôi không được lưu trữ trong của tôi .gitconfigcũng như trong bất kỳ chuỗi khóa nào cũng như trong git credential.helper.

Trong ví dụ bên dưới PersonalName là tài khoản GH của tôi, CompanyName là công ty (chủ sở hữu của kho lưu trữ trên GH) và RepoName là kho lưu trữ.

Thông báo lỗi ban đầu của tôi cũng hơi khác: cố gắng git push origin masterdẫn đến

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

Điều khiển từ xa đã hoạt động trước khi tôi thay đổi mật khẩu GH và tôi không muốn xóa điều khiển từ xa vì tôi cần phải thực hiện các thay đổi cục bộ.

Cuối cùng, một câu trả lời ngắn gọn cho câu hỏi này trên Diễn đàn Cộng đồng GitHub đã chỉ cho tôi đi đúng hướng. Điều quan trọng là liên kết tên tài khoản GH của tôi với repo từ xa (riêng tư).

Điều này đã làm việc cho tôi:

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

Sau đó

git remote show origin

nhắc nhở với

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

Tôi đã có thể nhập mật khẩu mới của mình, xem chi tiết từ xa và git push origin masterđã thành công.


0

Nếu bạn đã thiết lập Github 2FA Auth, bạn cần mã thông báo truy cập cá nhân (thay cho mật khẩu github của bạn trong git cli), hãy làm theo hướng dẫn sau để tạo: https://help.github.com/en/github/authenticating-to -github / create-a-personal-access-token-for-the-command-line

Sau đó, làm một cái gì đó như

git tổng thể thanh toán

git pull origin <--- Tại thời điểm này, bạn sẽ được yêu cầu nhập thông tin đăng nhập của mình, nhập người dùng github bình thường của bạn và làm mật khẩu dán mã thông báo được tạo trong liên kết ở trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.