关于git的crlf提交有如下配置。

提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true

提交时转换为LF,检出时不转换
git config --global core.autocrlf input

提交检出均不转换
git config --global core.autocrlf false

拒绝提交包含混合换行符的文件
git config --global core.safecrlf true

允许提交包含混合换行符的文件
git config --global core.safecrlf false

提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

但是我本地采用了git config --global core.autocrlf input, 即提交和检出都不使用自动转换crlf。那么这个就需要保证自己提交文件时注意将换行改为LF。

git status -s|grep -v 'D '|awk '{print $2}'|xargs file|grep CRLF
这条命令是将未提交到本地的文件列出,排除已删除的,并且行结尾使用了CRLF的。

RPM编译时遇到这个问题

xecuting(%build): /bin/sh -e /var/tmp/rpm-tmp.HDvAfF
+ umask 022
+ cd /tmp/csmp-build-TLlpXrJT/BUILD
+ cd csmp-2.0.3sp1
+ $'\r'
/var/tmp/rpm-tmp.HDvAfF: line 29: $'\r': command not found
error: Bad exit status from /var/tmp/rpm-tmp.HDvAfF (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.HDvAfF (%build)
make: *** [rpm] Error 1
make: Leaving directory `/root/rpms/xxx'

打开这个文件/var/tmp/rpm-tmp.HDvAfF时,会看到29号有个特殊的字符 ^M

这个其实是CLRF 没转成LF的问题, linux上用yum install dos2unix,修改相应的文件 即 dos2unix filename 即可

实际上没有git export的命令,有也可能是第三方的。
那么这里有个git archive可以用作导出。

git archive [--format=<fmt>] [--list] [--prefix=<prefix>/] [<extra>]
          [-o <file> | --output=<file>] [--worktree-attributes]
          [--remote=<repo> [--exec=<git-upload-archive>]] <tree-ish>
          [<path>…​]

- 阅读剩余部分 -