Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
182 views
in Technique[技术] by (71.8m points)

bash - Adding Git credentials on Windows

I am on a Windows 10 system and am trying to add my credentials to Git in Git Bash. I cannot find a way to store my password.

I checked GitHub's documentation, which said just to enter the line git config --global credential.helper wincred, but that didn't seem to make sense, as there's not prompt to enter a password. I checked Git's documentation, which said to use command git credential-store --file ~/git.store store and fill in all prompts. The bash emulator wasn't able to read the credentials.

Finally, I tried to add my password like I added my email, via git config --global user.password "5ecre7" but after running a sample git clone on a repository I made it responded that I didn't have the access rights. Is there a way to fix this?

question from:https://stackoverflow.com/questions/46878457/adding-git-credentials-on-windows

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Ideally, you should enter:

git config --global credential.helper manager-core

Then your password would be stored in the Windows Credential Manager.
See more at "Unable to change git account".

On the first push, a popup will appear asking for your credentials (username/password) for the target server (for instance github.com)

If not, that might means your credentials were already stored.
If they are incorrect, a simple git credential-manager reject https://github.com will remove them (on Windows, again. On Mac: git credential-osxkeychain erase https://github.com)


With Git 2.29 (Q4 2020), the parser in the receiving end of the credential protocol is loosen to allow credential helper to terminate lines with CRLF line ending, as well as LF line ending.

See commit 356c473 (03 Oct 2020) by Nikita Leonov (nyckyta).
(Merged by Junio C Hamano -- gitster -- in commit 542b3c2, 05 Oct 2020)

credential: treat CR/LF as line endings in the credential protocol

Signed-off-by: Nikita Leonov
Signed-off-by: Johannes Schindelin

This fix makes using Git credentials more friendly to Windows users: it allows a credential helper to communicate using CR/LF line endings ("DOS line endings" commonly found on Windows) instead of LF-only line endings ("Unix line endings").

Note that this changes the behavior a bit: if a credential helper produces, say, a password with a trailing Carriage Return character, that will now be culled even when the rest of the lines end only in Line Feed characters, indicating that the Carriage Return was not meant to be part of the line ending.

In practice, it seems very unlikely that something like this happens. Passwords usually need to consist of non-control characters, URLs need to have special characters URL-encoded, and user names, well, are names.

However, it does help on Windows, where CR/LF line endings are common: as unrecognized commands are simply ignored by the credential machinery, even a command like quit (which is clearly intended to abort) would simply be ignored (silently) by Git.

So let's change the credential machinery to accept both CR/LF and LF line endings.

While we do this for the credential helper protocol, we do not adjust git credential-cache--daemon(man) (which won't work on Windows, anyway, because it requires Unix sockets) nor git credential-store(man) (which writes the file ~/.git-credentials which we consider an implementation detail that should be opaque to the user, read: we do expect users not to edit this file manually).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...