我尝试使用CRLF结束行提交文件,但失败了.
我花了整整一天的时间在我的Windows计算机上尝试不同的策略,几乎被迫停止尝试使用Git而是尝试使用Mercurial.
每个答案只能分享一个最佳实践.
我想强制git在Windows下检出文件LF
而不是CR+LF
.我检查了两个配置选项,但我无法找到正确的设置组合.
我希望它将所有文件转换为LF
并保留LF
文件.
备注:我使用autocrlf = input
但是这只是在你提交时修复文件.我想强制它让他们使用LF
.
可能我不是那么清楚:存储库已经在使用LF
但是使用msysgit检出的文件正在使用CR+LF
,我想强制msysgit使用它们LF
:强制Unix行结束.
>git config --list | grep crlf
core.autocrlf=input
Run Code Online (Sandbox Code Playgroud) 我在Stack Overflow上阅读了很多不同的问题和答案,以及关于core.autocrlf设置如何工作的git文档.
这是我对以下内容的理解:
Unix和Mac OSX(OSX之前使用CR)客户端使用LF行结尾.
Windows客户端使用CRLF行结尾.
当在客户端上将core.autocrlf设置为true时,git存储库始终以LF行结束格式存储文件,并且客户端(即Windows)在签出/提交时来回转换客户端文件中的行结尾-LF行结尾,无论行结尾文件在客户端上的格式是什么(这与Tim Clem的定义不一致 - 请参阅下面的更新).
这是一个矩阵,试图为带有问号的core.autocrlf的'input'和'false'设置记录相同的内容,我不确定行结束转换行为.
我的问题是:
我将从答案中更新问号,因为似乎已形成共识.
core.autocrlf value true input false ---------------------------------------------------------- commit | convert ? ? new | to LF (convert to LF?) (no conversion?) commit | convert to ? no existing | LF (convert to LF?) conversion checkout | convert to ? no existing | CRLF (no conversion?) conversion
我并不是真的在寻找各种设置的利弊意见.我只是在寻找数据,这清楚地说明了如何期望git能够在三种设置中运行.
-
2012年4月17日更新:阅读了由JJD在评论中链接的Tim Clem的文章后,我修改了上表中"未知"值中的一些值,并更改了"checkout existing | true to conversion"到CRLF而不是转换为客户".以下是他给出的定义,这些定义比我在其他地方看到的更清楚:
core.autocrlf …
有输出sed
:
http://sitename.com/galleries/83450
72-profile
Run Code Online (Sandbox Code Playgroud)
这两个字符串应合并为一个并用空格分隔,如:
http://sitename.com/galleries/83450 72-profile
Run Code Online (Sandbox Code Playgroud)
两个字符串是流水线的tr
,以便用空格替换换行符:
tr '\n' ' '
Run Code Online (Sandbox Code Playgroud)
并且它不起作用,结果与输入相同.
使用ASCII代码指示空间会'\032'
导致替换\n
为不可打印的字符.
怎么了?我在Windows上使用Git Bash.
我的ENTRYPOINT
脚本不执行并抛出 standard_init_linux.go:175: exec user process caused "no such file or directory"
.为什么这样?
$ docker build -t gilani/trollo . && docker run gilani/trollo
Sending build context to Docker daemon 126 kB
Step 1 : FROM vault:latest
---> 1f127f53f8b5
Step 2 : MAINTAINER Amin Shah Gilani <gilani@payload.tech>
---> Using cache
---> 86b885ca1c81
Step 3 : COPY vaultConfig.json /vault/config
---> Using cache
---> 1a2be2fa3acd
Step 4 : COPY ./docker-entrypoint.sh /
---> Using cache
---> 0eb7c1c992f1
Step 5 : RUN chmod …
Run Code Online (Sandbox Code Playgroud) 我已经阅读了Git文档,我的Git配置中的设置来自哪里?然而我仍然无法理解我的一些设置.
我在Windows 10上使用的是Git 2.5.3.以下是输出git config -l
:
? git config -l
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=Ben Collins
user.email=#redacted#
alias.sm=submodule
alias.br=branch
alias.co=checkout
alias.st=status
alias.rebuild=!git rm --cached -r . && git reset --hard
core.excludesfile=C:\Users\Benjamin\Documents\gitignore_global.txt
core.editor=c:/Users/Benjamin/AppData/Local/atom/bin/atom.cmd
core.attributesfile=C:\Users\Benjamin\.gitattributes
push.default=simple
merge.tool=p4merge
mergetool.p4merge.cmd=p4merge.exe "$BASE" "$LOCAL" "$REMOTE" "$MERGED"
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
gui.encoding=utf-8
diff.guitool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
difftool.p4merge.cmd=p4merge.exe "$LOCAL" "$REMOTE"
mergetool.keepbackup=false
rerere.enabled=true
credential.helper=!'C:\Users\Benjamin\AppData\Roaming\GitCredStore\git-credential-winstore.exe'
filter.lfs.clean=git lfs clean %f
filter.lfs.smudge=git lfs smudge %f
filter.lfs.required=true
color.diff.whitespace=red reverse
Run Code Online (Sandbox Code Playgroud)
令人讨厌的是我在任何地方都找不到的前十二种设置.
C:\Program …
Run Code Online (Sandbox Code Playgroud) 在为实体框架使用T4类时,有几个开发人员为每个生成的行生成一个额外的新行.我想知道这是否是某种需要更改的设置,以便他们的T4生成的文件看起来像其他开发人员生成的文件.作为我所谈论的一个例子:(删除了特定的名称,但你应该能够看到从同一个*.tt文件生成的新行数量的差异.)
(更新:问题也出现在其他T4模板中,而不仅仅是EF.两台PC都使用TextTemplatingFileGenerator作为T4自定义工具.)
我电脑的T4输出:
public virtual DbSet<GeneratedObject1> GeneratedObject1 { get; set; }
public virtual DbSet<GeneratedObject2> GeneratedObject2 { get; set; }
public virtual int SomeMethod1(Nullable<int> inParameter)
{
var localParameter = inParameter.HasValue ?
new ObjectParameter("SomePropertyName", inParameter) :
new ObjectParameter("SomePropertyName", typeof(int));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SomeMethod1", localParameter);
}
public virtual int SomeMethod2(Nullable<int> inParameter)
{
var localParameter = inParameter.HasValue ?
new ObjectParameter("SomePropertyName", inParameter) :
new ObjectParameter("SomePropertyName", typeof(int));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SomeMethod2", localParameter);
}
Run Code Online (Sandbox Code Playgroud)
PC的T4输出:
public virtual DbSet<GeneratedObject1> GeneratedObject1 { get; set; }
public virtual DbSet<GeneratedObject2> GeneratedObject2 …
Run Code Online (Sandbox Code Playgroud) 我们的网站使用一堆带翻译的JSON文件进行本地化(每种语言一个文件).文件的内容如下所示:
{
"Password": "Passwort",
"Tables": "Tische"
}
Run Code Online (Sandbox Code Playgroud)
许多团队成员同时编辑这些JSON文件,添加新短语和编辑现有短语,即使人们正在更改不同的行,我们也会遇到很多冲突.
有没有办法以这样的方式设置git,以帮助避免合并冲突?
PS 我发现这个脚本有助于本地合并:https://gist.github.com/jphaas/ad7823b3469aac112a52.但是,我对能够解决团队中每个人的问题的解决方案感兴趣(即使是通过GitHub的Web界面编辑JSON的人).
我正在尝试按照官方 docker 网页(https://docs.docker.com/samples/library/scratch/)中给出的说明创建基本图像
docker --version
Docker version 18.09.6, build 481bc77
OS Details:
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
Run Code Online (Sandbox Code Playgroud)
Docker 文件:
FROM scratch
COPY hello /
CMD ["/hello"]
Run Code Online (Sandbox Code Playgroud)
你好ç
#include <stdio.h>
int main()
{
// printf() displays the string inside quotation
printf("Hello, World!");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我能够编译 C 程序并在本地执行
我可以使用 dockerfile 构建映像,但是当我尝试运行容器时,出现以下错误:
# docker run -i hello
standard_init_linux.go:211: exec user process caused "no such file or directory"
#
Run Code Online (Sandbox Code Playgroud)
我希望容器能够成功运行并在控制台上打印“Hello World”。提供的大多数答案都要求更改 EOL,这并不适用,因为我们已经在 Linux 上并且不尝试运行脚本。
文件
FROM python:3.7.4-alpine
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV LANG C.UTF-8
MAINTAINER "mail@gmail.com"
RUN apk update && apk add postgresql-dev gcc musl-dev
RUN apk --update add build-base jpeg-dev zlib-dev
RUN pip install --upgrade setuptools pip
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
#CMD ["gunicorn", "--log-level=DEBUG", "--timeout 90", "--bind", "0.0.0.0:8000", "express_proj.wsgi:application"]
ENTRYPOINT ["./docker-entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
docker-entrypoint.sh
#!/bin/bash
# Prepare log files and start outputting logs to stdout
touch /code/gunicorn.log
touch /code/access.log
tail -n …
Run Code Online (Sandbox Code Playgroud) git ×5
docker ×3
newline ×3
dockerfile ×2
base ×1
c# ×1
containers ×1
django ×1
entry-point ×1
eol ×1
git-bash ×1
git-config ×1
git-merge ×1
github ×1
image ×1
json ×1
localization ×1
msysgit ×1
python ×1
replace ×1
space ×1
t4 ×1
tr ×1
windows ×1