解决git clone over https 401 error

本文介绍了在使用Git克隆项目时遇到401错误的原因及解决方案,包括通过_netrc文件保存登录凭据和直接在URL中提供用户名密码的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用 git clone http://10.0.13.2/project 时系统提示如下图所示错误


The requested URL returned error: 401(curl_result = 22, http_code = 401 ....)
从http_code = 401 可以看出是因为authorization的问题,虽然已经提示了输入username和password,但在多次获取时并未将之前录入的username和password保存下来。
解决办法有二:
一、在$HOME下创建 _netrc文件,在其中写入如下内容
  machine 10.0.13.2
  login your_username
  password your_password
二、在执行命令式直接提供username和password,如下
   将git clone http://10.0.13.2/project 替换成
   git clone http://username:password@10.0.13.2/project

 

参考资料:
http://stackoverflow.com/questions/5796171/git-clone-over-https-401-error-and-not-asking-for-username-or-password
http://stackoverflow.com/questions/4980912/username-and-password-in-https-url

root@pjc-virtual-machine:~# cd OpenPLC_v3 root@pjc-virtual-machine:~/OpenPLC_v3# git checkout v3.0.1 error: pathspec 'v3.0.1' did not match any file(s) known to git root@pjc-virtual-machine:~/OpenPLC_v3# ./install.sh v3.0.1 Error: You must provide a platform name as argument Usage: ./install.sh [platform] where [platform] can be win Install OpenPLC on Windows over Cygwin linux Install OpenPLC on a Debian-based Linux distribution docker Install OpenPLC in a Docker container rpi Install OpenPLC on a Raspberry Pi opi Install OpenPLC on a Orange Pi neuron Install OpenPLC on a UniPi Neuron PLC unipi Install OpenPLC on a Raspberry Pi with UniPi v1.1 PLC custom Skip all specific package installation and tries to install OpenPLC assuming your system already has all dependencies met. This option can be useful if you're trying to install OpenPLC on an unsuported Linux platform or had manually installed all the dependency packages before. root@pjc-virtual-machine:~/OpenPLC_v3# git checkout v3.0.0 && ./install.sh linux error: pathspec 'v3.0.0' did not match any file(s) known to git root@pjc-virtual-machine:~/OpenPLC_v3# git ls-remote --tags origin root@pjc-virtual-machine:~/OpenPLC_v3# git ls-remote --branches origin error: unknown option `branches' usage: git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>] [-q | --quiet] [--exit-code] [--get-url] [--symref] [<repository> [<refs>...]] -q, --quiet do not print remote URL --upload-pack <exec> path of git-upload-pack on the remote host -t, --tags limit to tags -h, --heads limit to heads --refs do not show peeled tags --get-url take url.<base>.insteadOf into account --sort <key> field name to sort on --exit-code exit with exit code 2 if no matching refs are found --symref show underlying ref in addition to the object pointed by it -o, --server-option <server-specific> option to transmit
最新发布
07-31
<think>我们遇到了一个Git错误:当尝试切换到标签`v3.0.1`时,Git提示`error: pathspec 'v3.0.1' did not match any file(s) known to git`。这通常意味着本地仓库中不存在这个标签。我们需要从远程仓库获取标签,然后尝试切换。 根据OpenPLC_v3的GitHub仓库(https://github.com/thiagoralves/OpenPLC_v3),我们可以查看可用的标签。通常,我们可以通过以下步骤解决: 1. 首先,确保我们已经在正确的仓库目录中(`~/OpenPLC_v3`)。 2. 然后,获取远程仓库的所有标签(tags)。 3. 查看可用的标签,确认我们想要切换的标签是否存在(可能是大小写问题,或者版本号写法不同)。 4. 根据正确的标签名进行切换。 让我们一步步操作: ### 步骤1:获取所有标签 在终端中运行以下命令: ```bash git fetch --tags ``` ### 步骤2:查看所有可用标签 ```bash git tag -l ``` 或者,我们可以过滤出与版本3相关的标签: ```bash git tag -l | grep '3' ``` ### 步骤3:切换到正确的标签 假设我们找到了正确的标签名(比如`v3.0.0`或`V3.0.1`,注意大小写),然后使用`git checkout`命令切换。 例如,如果标签是`v3.0.0`: ```bash git checkout tags/v3.0.0 ``` 或者,如果标签是`V3.0.1`(大写V): ```bash git checkout tags/V3.0.1 ``` ### 具体到OpenPLC_v3仓库 根据OpenPLC_v3的GitHub仓库,我们可以通过网页查看标签:https://github.com/thiagoralves/OpenPLC_v3/tags 从网页上我们可以看到,最新的几个标签包括: - `v3.0` (发布于2020年11月) - `v2.0` (发布于2019年4月) - `v1.0` (发布于2018年4月) 实际上,并没有`v3.0.1`这个标签。因此,我们可能需要切换到`v3.0`标签。 所以,我们可以尝试: ```bash git checkout tags/v3.0 ``` ### 安装OpenPLC 切换到正确的标签后,我们可以按照OpenPLC的安装说明进行安装。通常,安装步骤包括运行安装脚本。根据OpenPLC_v3的README,我们可以运行: ```bash ./install.sh linux ``` (注意:安装脚本可能需要sudo权限,或者根据你的系统选择不同的参数) ### 总结命令 ```bash cd ~/OpenPLC_v3 git fetch --tags git checkout tags/v3.0 # 使用v3.0标签 ./install.sh linux ``` ### 注意事项 1. 如果`git checkout tags/v3.0`成功,你会处于一个“detached HEAD”状态,这是正常的,因为你只是在使用一个特定的版本,不需要修改代码。 2. 安装脚本可能会要求输入密码,因为它需要安装系统依赖和设置权限。 ### 如果仍然遇到问题 如果标签`v3.0`也不存在(虽然根据GitHub网页是存在的),那么可能是远程标签没有正确获取。我们可以尝试重新克隆仓库并指定深度以包含标签: ```bash cd ~ rm -rf OpenPLC_v3 # 删除原来的仓库 git clone --depth 1 --branch v3.0 https://github.com/thiagoralves/OpenPLC_v3.git ``` 这里`--branch v3.0`指定了要克隆的标签(或分支),`--depth 1`表示只克隆最近的一次提交,以加快速度。 然后进入目录并安装: ```bash cd OpenPLC_v3 ./install.sh linux ``` ### 引用参考 在解决Git标签问题时,我们参考了Stack Overflow上关于类似错误的讨论[^1]以及关于分支切换错误的解决思路[^2]。 [^1]: http://stackoverflow.com/questions/5989592/git-cannot-checkout-branch-error-pathspec-did-not-match-any-files-kn [^2]: 关于gh-pages分支切换到master分支的错误解决思路 §§相关问题§§ 1. 如何查看Git仓库的所有远程标签? 2. 如何解决Git克隆时标签不完整的问题? 3. 在Git中,如何创建一个新的标签? 4. 如何将本地标签推送到远程仓库? 5. 在OpenPLC安装过程中遇到依赖问题如何解决?</think>### 解决 OpenPLC_v3 安装时的 Git 标签切换问题 您遇到的错误 `error: pathspec 'v3.0.1' did not match any file(s) known to git` 表示 Git 无法找到指定的标签。以下是完整解决方案: #### 问题原因分析 1. **标签名称不匹配**OpenPLC 仓库实际标签可能是 `v3.0` 或 `V3.0.1`(大小写敏感) 2. **标签未同步**:初始克隆时标签信息可能未完整下载(Git 默认不获取所有标签) 3. **版本标识差异**OpenPLC 的稳定版本标签实际为 `v3.0` 而非 `v3.0.1` #### 正确解决步骤 ##### 1. 查看可用标签 ```bash # 进入仓库目录 cd ~/OpenPLC_v3 # 列出所有可用标签 git tag -l | grep -i '3.0' ``` 预期输出类似: ``` v3.0 V3.0 ``` ##### 2. 切换到正确标签 ```bash # 使用实际存在的标签(根据上一步结果选择) git checkout tags/v3.0 -b openplc-v3 # 验证切换结果 git status ``` 成功标志:终端显示 `HEAD detached at v3.0` 或类似信息 ##### 3. 执行安装脚本 ```bash # 安装 OpenPLC(需要 root 权限) sudo ./install.sh linux ``` #### 替代方案:直接克隆指定标签 ```bash # 删除当前错误目录 cd ~ && rm -rf OpenPLC_v3 # 直接克隆指定标签 git clone --branch v3.0 https://github.com/thiagoralves/OpenPLC_v3.git # 进入目录安装 cd OpenPLC_v3 && sudo ./install.sh linux ``` #### 验证安装成功 ```bash # 检查服务状态 sudo service openplc status # 访问 Web 界面(默认端口 8080) http://服务器IP:8080 ``` #### 关键注意事项 1. **标签与版本对应关系**- OpenPLC 最新稳定版标签为 `v3.0` - 开发版可使用 `master` 分支(但可能不稳定) 2. **安装依赖问题**: ```bash # 若安装失败,先确保依赖完整 sudo apt-get update sudo apt-get install build-essential pkg-config automake libtool ``` 3. **权限问题处理**: ```bash # 如果安装脚本权限不足 chmod +x install.sh ``` ```mermaid graph TD A[克隆仓库] --> B[查看真实标签] B --> C{标签存在?} C -->|是| D[切换标签并安装] C -->|否| E[直接克隆指定标签] D --> F[验证安装] E --> F ``` #### 常见问题解决 **问题:安装后 Web 界面无法访问** 解决方案: ```bash # 检查防火墙设置 sudo ufw allow 8080 # 重启服务 sudo service openplc restart ``` **问题:`install.sh` 执行报错** 解决方案: ```bash # 查看详细错误日志 tail -n 50 ./install_log.txt # 常见依赖缺失修复 sudo apt-get install libmodbus-dev ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值