MSYS2安装的Git执行push时无法输入GitHub用户名求助
解决Git Push时卡在输入用户名无法输入的问题
问题重现
Windows 10系统下用MSYS2安装的Git,提交修改后执行git push,终端停在Username for 'https://github.com':行,无法输入任何内容,不管是MSYS2 Bash还是Windows命令提示符都这样。相关操作输出如下:
[USER]@DESKTOP-D8JQH20 MSYS ~ $ cd /c/Users/[USER]/OneDrive/Documents/test1/TkinterWeb [USER]@DESKTOP-D8JQH20 MSYS /c/Users/[USER]/OneDrive/Documents/test1/TkinterWeb $ git status On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) deleted: tkinterweb/tkhtml/win_amd64/Tkhtml30.dll modified: tkinterweb/tkhtml/win_amd64/pkgIndex.tcl Untracked files: (use "git add <file>..." to include in what will be committed) tkinterweb.egg-info/ tkinterweb/__pycache__/ tkinterweb/tkhtml/win_amd64/Tkhtml30g.dll no changes added to commit (use "git add" and/or "git commit -a") [USER]@DESKTOP-D8JQH20 MSYS /c/Users/[USER]/OneDrive/Documents/test1/TkinterWeb $ git push Username for 'https://github.com':
解决方法
1. 改用SSH协议推送(推荐,一劳永逸)
- 生成SSH密钥:在MSYS2 Bash里执行
ssh-keygen -t ed25519 -C "你的邮箱",一路回车用默认设置即可 - 把生成的公钥(
~/.ssh/id_ed25519.pub文件里的全部内容)复制到GitHub账户的SSH密钥列表中 - 修改仓库远程地址为SSH格式:
git remote set-url origin git@github.com:你的用户名/仓库名.git
之后再执行git push就不会再提示输入用户名密码了
2. 配置Git凭据助手保存账号信息
在MSYS2 Bash里执行以下命令,让Git调用Windows自带的凭据管理器自动保存账号:
git config --global credential.helper manager-core
下次执行git push时会弹出Windows的凭据输入窗口,输入GitHub用户名和密码后会自动保存,后续操作无需再手动输入
3. 临时绕过:命令行直接指定用户名
不想改配置的话,可以直接在push命令里带上用户名:
git push https://你的用户名@github.com/你的用户名/仓库名.git
执行后会直接提示输入密码,不会卡在用户名输入步骤
4. 重置终端输入设置
如果是终端输入异常导致的,在MSYS2 Bash里执行以下命令重置终端:
stty sane
之后再重新执行git push试试能不能输入用户名
内容的提问来源于stack exchange,提问作者Zamyatin
相关产品推荐
相关产品推荐

