一个编码员使用Windows计算机,在我们的源代码中随处可见回车.
有没有办法写一个git钩子,将所有转换\r\n为\n?
注意我以前没有使用git hooks,所以一点点额外的手持可能会有很长的路要走:)
这可能听起来像一个多余的问题(很可能是一个冗长的问题),但我找不到答案.情况如下:
我的应用程序正在创建将CR作为行结尾的文本文件.更具体地说,我没有明确地将行结尾设置为CR,它恰好是我用来获取文本正文的命令的输出.当然我可以手动将CR转换为LF,但我不想,如果我可以避免它.
Git将这些文件视为一行(例如在差异期间).我已经通过这个测试库确定了行结尾的原因:https://github.com/jfletcher4d/diff-test
我实际上并不关心文件系统中的行结尾.它并不重要,至少现在还没有(我可能最终会关心我是否需要导入这些文件,现在它只是导出).但我不希望转换的CR的劳动力调查在我的应用程序,如果我能避免它,因为性能原因,以及肛门retentativeness原因:) IE这不是如何创建文本文件的问题,而是如何强制repo中的每个文本文件只有LF.
可以将git配置为将所有行结尾更改为LF,即使文件是使用CR提交的吗?
我在Windows上,使用TortoiseGit和msysgit(以及一些TortoiseSVN)可以互换,而我学习git,如果这很重要的话.
获得 CR 的 ESLint 错误 - 即使我有带有 Windows 行结尾的 git pull 代码。
这发生在带有 EsLint 插件 (1.7.0) 的 Visual Studio Code 上直到我最近将我的 git 更新到最新版本 (2.20.0).windows.1 才发生这种情况
我的 eslintrc 文件
{
"plugins": [
"jsx-a11y",
"react",
"prettier"
],
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"prettier"
],
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true,
"generators": true,
"experimentalObjectRestSpread": true
}
},
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true,
"jquery": true
},
"globals": {
"define": true
},
"rules": { …Run Code Online (Sandbox Code Playgroud) 在一个相对较大的项目中,使用签出CRLF和提交LF的策略。为此,我的系统使用:
git config --global core.autocrlf true
Run Code Online (Sandbox Code Playgroud)
但是,当提交文件(在本例中为.gitattributes文件)时,会返回警告:
LF would be replaced by CRLF in .gitattributes
Run Code Online (Sandbox Code Playgroud)
文件.gitattributes本身包含该行* text=auto !eol,并且文件本身使用 LF 行结尾。
为什么会发生这种情况?为什么 Git 告诉我要小心,因为它会将 LF 转换为 CRLF,即使我希望此文件在存储库中以 LF 结尾进行规范化?
我一定错过了一些完全明显的东西,因为我已经经历过:
还有更多,但这仍然没有像我想象的那样工作。
关于当前版本和下一版本中的core.autocrlf和core.safecrlf功能,已经有很多讨论.我在这里的问题涉及开发人员从裸存储库克隆的环境.
在克隆期间,启用autocrlf设置.但由于开发人员可以完全控制他们的克隆,他们可以删除此autocrlf设置并继续.
我们可以在.gitattributes文件中指定二进制文件,但是GIT会自动确定文件是文本文件还是二进制文件?
有没有像更新挂钩(提交钩子是不可能的,因为开发人员仍然可以删除它)的方法,可以放置,以确保,文件(与CRLF)从Windows环境推送到托管裸机库的UNIX机器,转换为UNIX EOL格式(LF)?
是否有这样的更新挂钩扫描每个文件的CRLF会影响推送操作的性能?
谢谢
我是Docker的新手,正在尝试将应用程序移植到它上面。本质上,在启动时,该应用程序需要执行一些我封装在脚本中的与环境相关的工作。
我的应用看起来像
Dockerfile
scripts/run.sh
build-development/stuff
build-production/stuff
Run Code Online (Sandbox Code Playgroud)
这是我的Dockerfile:
FROM nginx
RUN chmod +x scripts/run.sh
CMD ["scripts/run.sh", APP_ENV]
EXPOSE 80
Run Code Online (Sandbox Code Playgroud)
这是脚本/ run.sh:
#!/bin/bash
mkdir dist
chmod -R 777 dist
if [ $1 == "development" ]
then
cp -R build-development/. /usr/share/nginx/html
fi
if [ $1 == "stage" ]
then
cp -R build-production/. /usr/share/nginx/html
sed -i 's/production/stage/g' dist/index.html
fi
if [ $1 == "production" ]
then
cp -R build-production/. /usr/share/nginx/html
fi
Run Code Online (Sandbox Code Playgroud)
我的想法是,我将像这样运行图像:
docker run -e APP_ENV=development app-name
Run Code Online (Sandbox Code Playgroud)
并将其输入脚本中,该脚本将复制正确的文件。
不幸的是,我从未运行过该映像,因为在构建步骤中:
docker build -t app-name . …Run Code Online (Sandbox Code Playgroud) 我最近从bitbucket下载了vb6.o项目文件,但无法运行项目,无法在日志文件'0'中生成以下错误,无法加载第0行:无法加载文件E:\ cas \ Forms \ errorform.frm。