Bri*_*lia 54 windows git bash line-endings core.autocrlf
我正在尝试从这里安装YouCompleteMe .
当我执行:
./install.sh --clang-completer
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
env: bash\r: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我不知道环境变量有什么问题.这是我的bash路径:
which bash
/bin/bash
Run Code Online (Sandbox Code Playgroud)
我需要将其更改为/ usr/bash吗?如果是,那我该怎么做?我尝试更改〜/ .bashrc文件,但它没有用.
mkl*_*nt0 97
错误消息表明您正在调用的脚本具有嵌入的\r
字符,这反过来表明它具有Windows样式的\r\n
行结尾而不是\n
-only行结束bash
期望.
作为快速修复,您可以删除\r
字符.如下:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Run Code Online (Sandbox Code Playgroud)
然后跑
./install.Unix.sh --clang-completer
Run Code Online (Sandbox Code Playgroud)
然而,更大的问题是为什么你最终使用\r\n
-style文件 - 最有可能的是,其他文件也会受到影响.
也许你在Windows上运行Git,其中典型的配置是将Unix风格的\n
换行符转换为Windows样式的\r\n
换行符,检查文件并重新转换为提交时的\n
换行符.
虽然这对于 Windows 上的开发很有意义,但它会妨碍像这样的安装方案.
为了使混帐签出文件在Windows Unix风格的文件结尾 -至少暂时-使用:
git config --global core.autocrlf false
Run Code Online (Sandbox Code Playgroud)
然后git clone
再次运行您的安装命令.
要在以后恢复Git的行为,请运行git config --global core.autocrlf true
.
Joh*_*ohn 35
如果您使用的是 VS Code,则可以切换到CRLF
并LF
再次保存文件。这会将所有 CRLF 替换为 LF。
sal*_*zad 19
正如上面的评论所说,这是由于 Windows 行结尾而发生的。要解决此问题,请按照以下步骤操作
对于 MAC:
brew install dos2unix # Installs dos2unix Mac
find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Run Code Online (Sandbox Code Playgroud)
对于 Linux:
sudo apt-get install -y dos2unix # Installs dos2unix Linux
sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Run Code Online (Sandbox Code Playgroud)
并确保您的 git 配置设置如下:
git config --global core.autocrlf input
Run Code Online (Sandbox Code Playgroud)
Tua*_*yen 13
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build
Run Code Online (Sandbox Code Playgroud)
小智 12
变成类似的东西.您可以使用dos2unix install.sh
转换行结尾.多个文件通过find [pattern] | xargs dos2unix
就我而言,我有一个错误的 git 配置。git 文档指出:
如果您在 Windows 上编程并与非 Windows 人员一起工作(反之亦然),您可能会在某些时候遇到行尾问题
我正在使用 Mac OS,并且在我的一个项目中确实遇到了这个问题。为了解决它,我转身autocrlf
到true
这是错误的。
您可以autocrlf
像这样检查git 配置的状态:
git config core.autocrlf
Run Code Online (Sandbox Code Playgroud)
因此,如果这返回true
并且问题发生在 git 存储库中,您必须将该配置更改为
git config --global core.autocrlf input
Run Code Online (Sandbox Code Playgroud)
在 Mac/Unix 系统上。对于仅 Windows 的项目,您可以使用
git config --global core.autocrlf false
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我删除了 git 存储库并再次克隆它,之后一切都按预期工作。
在https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration了解更多信息
归档时间: |
|
查看次数: |
43266 次 |
最近记录: |