114 lines
2.4 KiB
Markdown
114 lines
2.4 KiB
Markdown
# HTTP 认证问题解决方案
|
||
|
||
## 问题现象
|
||
|
||
```
|
||
remote: Unauthorized
|
||
fatal: Authentication failed for 'http://101.43.95.130:8080/test-project/'
|
||
```
|
||
|
||
## 问题原因
|
||
|
||
在 `DEVELOPMENT_BECOME_ANY_ACCOUNT` 模式下,HTTP 认证可能需要特殊处理。
|
||
|
||
## 解决方案
|
||
|
||
### 方案一:配置 Git 凭证存储(推荐)
|
||
|
||
在您的本地电脑上执行:
|
||
|
||
```bash
|
||
cd /d/ttt/test-project
|
||
|
||
# 配置 Git 凭证存储
|
||
git config credential.helper store
|
||
|
||
# 配置用户名
|
||
git config credential.http://101.43.95.130:8080.username renjianbo
|
||
|
||
# 或者全局配置
|
||
git config --global credential.helper store
|
||
git config --global credential.http://101.43.95.130:8080.username renjianbo
|
||
|
||
# 重新推送
|
||
git push origin HEAD:refs/for/master
|
||
```
|
||
|
||
当提示输入密码时,直接按回车(留空)。
|
||
|
||
### 方案二:在 URL 中使用空密码
|
||
|
||
```bash
|
||
cd /d/ttt/test-project
|
||
|
||
# 修改远程 URL,包含用户名和空密码
|
||
git remote set-url origin http://renjianbo:@101.43.95.130:8080/test-project
|
||
|
||
# 推送
|
||
git push origin HEAD:refs/for/master
|
||
```
|
||
|
||
### 方案三:使用 Git Credential Manager
|
||
|
||
如果使用 Windows Git Credential Manager:
|
||
|
||
```bash
|
||
cd /d/ttt/test-project
|
||
|
||
# 清除已保存的凭证
|
||
git credential reject <<EOF
|
||
protocol=http
|
||
host=101.43.95.130
|
||
port=8080
|
||
EOF
|
||
|
||
# 重新推送,会弹出凭证对话框
|
||
git push origin HEAD:refs/for/master
|
||
```
|
||
|
||
在对话框中:
|
||
- Username: `renjianbo`
|
||
- Password: 留空或输入任意字符
|
||
|
||
### 方案四:手动创建凭证文件
|
||
|
||
在 Windows 上,可以手动创建凭证文件:
|
||
|
||
```bash
|
||
# 创建凭证文件(如果不存在)
|
||
mkdir -p ~/.git-credentials 2>/dev/null || true
|
||
|
||
# 添加凭证(格式:protocol://username:password@host:port)
|
||
echo "http://renjianbo:@101.43.95.130:8080" >> ~/.git-credentials
|
||
|
||
# 配置 Git 使用凭证文件
|
||
git config --global credential.helper store
|
||
|
||
# 推送
|
||
cd /d/ttt/test-project
|
||
git push origin HEAD:refs/for/master
|
||
```
|
||
|
||
## 快速修复(最简单)
|
||
|
||
执行以下命令:
|
||
|
||
```bash
|
||
cd /d/ttt/test-project
|
||
|
||
# 方法 1:配置凭证存储和用户名
|
||
git config credential.helper store
|
||
git config credential.http://101.43.95.130:8080.username renjianbo
|
||
|
||
# 方法 2:修改 URL 包含空密码
|
||
git remote set-url origin http://renjianbo:@101.43.95.130:8080/test-project
|
||
|
||
# 推送
|
||
git push origin HEAD:refs/for/master
|
||
```
|
||
|
||
## 如果还是不行
|
||
|
||
可能需要检查服务器端的 HTTP 认证配置。请告诉我具体的错误信息,我会继续排查。
|
||
|