Câu hỏi Làm thế nào để đảm bảo Git không hỏi tôi về tên người dùng và mật khẩu GitHub của tôi?


Tôi đang làm việc với một repo trên GitHub và mỗi khi tôi cố gắng đẩy một cái gì đó, nó yêu cầu tên người dùng và mật khẩu GitHub của tôi. Tôi không muốn nó làm điều đó.

Tôi đã thử các hướng dẫn trên thiết lập email của bạn trong Git, cụ thể là thiết lập các biến Git github.user và github.token, nhưng điều đó không tạo ra bất kỳ sự khác biệt nào.

Tôi không hiểu tại sao điều này lại xảy ra.


158
2017-10-14 17:17


gốc


Bạn cần phải nhớ mật khẩu: help.github.com/articles/set-up-git#password-caching - Piotr Usewicz


Các câu trả lời:


Bạn cần phải thiết lập một ssh-agent mà bạn chỉ cần xác thực một lần. Xem câu trả lời này trên SO cho một howto.


27
2017-10-14 17:28



Nhưng giải pháp này là dành cho cụm từ ssh-gia đình. Vấn đề là git sử dụng "git push" mà không kích hoạt ssh-agent, tôi giả sử. (Tôi đã làm điều này, vì vậy tôi biết nó không hoạt động.) - picardo
@picardo: Tôi đã làm điều này, và nó thực sự làm việc. - Daenyth


Đã có một vấn đề tương tự ngày hôm nay: Tôi đã làm rối tung mọi thứ trong bản sao làm việc của mình, vì vậy tôi đã quyết định đổi tên thư mục và sao chép dự án của tôi một lần nữa từ github. Nhưng sau khi làm điều đó, tôi phải nhập mật khẩu của mình để thực hiện bất kỳ yêu cầu kéo / đẩy nào, thay vì nhập cụm mật khẩu chỉ một lần như tôi đã từng sử dụng.

Đó là bởi vì hôm nay tôi đã sử dụng giao thức https để sao chép dự án! Để kiểm tra giao thức bạn đang sử dụng, chỉ cần chạy

git config -l

và nhìn vào dòng bắt đầu bằng 'remote.origin.url'.

Để chuyển đổi giao thức:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username và your_project nên được thay thế bằng tên kho lưu trữ thích hợp và chủ sở hữu của kho lưu trữ đó. Tên người dùng sẽ là của bạn nếu bạn sở hữu kho lưu trữ hoặc tên người dùng của chủ sở hữu kho lưu trữ khác.


205
2017-08-08 22:36



Nó làm việc cho tôi. Một điều là url không chứa tên người dùng của tôi nhưng địa chỉ repo như nó xuất hiện trên github: git@github.com:some-user/repo-name.git - B Seven
Lưu ý: Google đã đưa tôi đến đây. Tôi đã có remote.origin.url đặt thành phương thức https và thậm chí không nhận thấy có https so với ssh phương pháp. URL này đã giúp tôi thấy rõ ràng: help.github.com/articles/… - Chris K
Có cách nào để chuyển mật khẩu vào không? - zishe
Q cho những người có kiến ​​thức git: Bất kỳ sự khác biệt (hoặc sở thích) giữa git config remote.origin.url ... được sử dụng ở trên, so với git remote set-url origin ...? - Daryn
Tôi không thể tìm ra cách để loại bỏ một nguồn gốc sai như thế. Câu trả lời là: git remote rm origin - Vacilando


Nếu bạn đang sử dụng HTTPS thay vì SSH, bạn có thể làm theo điều này:

  1. Tìm URL từ xa của bạn (remote.origin.url) với

    git config -l
    

    nhờ Sergio Morstabilini

  2. URL từ xa của bạn sẽ giống như sau: https: // {USERNAME} @ github.com / {USERNAME} / {REPONAME} .git

  3. Thực hiện lệnh này:

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    

28
2017-12-03 22:40



tên người dùng của tôi chứa @, đã không làm việc cho tôi. - coding_idiot
Nhưng nếu nó không (bạn không cần phải sử dụng email của bạn) nó hoạt động hoàn hảo! Cảm ơn. - Killah
Nếu tên người dùng của bạn có @, bạn cần phải mã hóa URL đó. meyerweb.com/eric/tools/dencoder - Tim Bodeit
Bạn nên bỏ qua mật khẩu vì lý do bảo mật. - zygimantus
hãy cẩn thận, mật khẩu sẽ được lưu trữ trong văn bản thuần tuý bên trong .git/config tập tin! - Amro


Tôi thích sử dụng HTTPS, tôi thấy nó dễ dàng hơn và an toàn hơn việc thiết lập các khóa ssh.

Bằng cách sử dụng HTTPS, bạn có thể ngăn git hỏi tên người dùng của bạn cho điều khiển từ xa github với những điều sau đây:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

Và bạn ít nhất có thể giảm tần suất git hỏi mật khẩu của bạn với:

git config --global credential.helper 'cache --timeout=28800'

Trường hợp 28800 là 8 giờ. Tôi sử dụng thiết lập này để chỉ nhập mật khẩu của mình một lần, khi tôi bắt đầu ngày làm việc.

Sau đó bạn sẽ có những mục này bên trong ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Nguồn:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config


24
2017-11-21 04:27



Nó làm việc như một say mê. cảm ơn. - david euler


Nếu bạn sử dụng HTTPS bằng cách sử dụng HTTPS, hãy thử Git Credential Store - nó sử dụng Windows Credential Store để giữ tên và mật khẩu của bạn.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

Sau đó, lần sau bạn nhập tên và mật khẩu của bạn, nó sẽ nhớ chúng cho bạn.


6
2018-02-23 11:54



Cảm ơn bạn. Dự án đã được đổi tên thành Git-Credential-Manager-for-Windows. - Michael S.


Khi bạn thiết lập khóa ssh cho github, nếu đó không phải là khóa mặc định của bạn, bạn sẽ cần phải thêm một phần vào ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

5
2017-10-14 19:45





Ngoài ra, nếu bạn muốn được nhắc nhập mật khẩu của mình mọi lúc, nhưng không phải tên người dùng của bạn, thì bạn định cấu hình từ xa là HTTPS với tên người dùng .. Như thế này ..

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

Sau này, bạn sẽ được nhắc nhập mật khẩu của bạn mỗi lần, nhưng không phải tên người dùng của bạn.

Đây là cách tôi thích nó, vì tôi thích bị buộc phải gõ mật khẩu github của tôi trước khi chia sẻ với thế giới.


5
2017-08-11 03:17





Mọi thứ hơi khác một chút nếu bạn đang sử dụng auth 2 yếu tố như tôi. Vì tôi không tìm được câu trả lời hay ở nơi khác, tôi sẽ dán một câu trả lời ở đây để tôi có thể tìm thấy nó sau này.

Nếu bạn đang sử dụng xác thực 2 yếu tố thì việc chỉ định tên người dùng / mật khẩu sẽ không hoạt động - bạn sẽ bị từ chối truy cập. Nhưng bạn có thể sử dụng mã thông báo truy cập ứng dụng và sử dụng trình trợ giúp thông tin xác thực của git cho bộ nhớ cache cho bạn. Dưới đây là các liên kết thích hợp:

Và tôi không nhớ nơi tôi thấy điều này nhưng khi bạn được hỏi Tên người dùng của mình - đó là nơi bạn gắn mã thông báo truy cập ứng dụng. Sau đó, để trống mật khẩu. Làm việc trên mac của tôi.


2
2017-09-25 19:45