git在不同操作系统下协作需要的配置

Git评论471阅读模式

一、换行符问题

由于不同操作系统的换行符有所不同,比如在Mac操作系统的换行符叫做LF,而windows系统的叫做CRLF(具体差别如下)。因此git在多方进行版本控制时,经常会出现因换行符不同而产生的令人头疼的问题。

表示 描述 保存到文件中的值 操作系统
CR 回车 \r Mac OS
LF 换行 \n Linux、Unix、Mac OS X
CRLF 回车换行 \r\n Windows

 

二、解决方法建议:

(1)在不同操作系统下设置相应的git全局配置,设置autocrlf和safecrlf参数。

windows下:

git config --global core.autocrlf true

(提交时转换为LF,检出时转换为CRLF)

git config --global core.safecrlf true

(拒绝提交包含混合换行符的文件)

linux/macOS下:

git config --global core.autocrlf input

(提交时转换为LF,检出时不转换)

git config --global core.safecrlf true

(拒绝提交包含混合换行符的文件)

这里需要说明的一点是,不管任何平台均将safecrlf参数设置为true,以保持本地换行符正常的好习惯。比如上面Windows平台上将core.autocrlf设置为true,如果工作区的文件中含有LF,当添加到暂存区的时候Git就会拒绝,因为core.safecrlf在true的情况下,Git认为工作区应该都是CRLF才对啊,所以我们需要将所有的LF转换为CRLF才能通过,可以使用dos2unix去转换;如果使用JetBrains系列的IDE则更简单,可通过“选择整个项目”--> File -- File Properties --Line separator -- 选择CRLF,即可全部进行转换。

(3)此外,再向项目添加.gitattributes文件,以防有些git客户端并未设置自动转换。

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
# *.key   -text
# *.crt   -text
# *.pem   -text
# *.go    text
# *.sol   text
# *.abi   -text
# *.bin   -text

 

Git最后更新:2021-10-28
git使用代理 Git

git使用代理

如果是socks协议,查看自己本地端口(如1080),则直接使用如下命令即可: git config --global http.proxy 'socks5://127.0.0.1:1080' 查看代...
git基本命令及原理机制整理 Git

git基本命令及原理机制整理

git可以说是最好用的分布式版本控制工具,梳理一下git主要的机制和功能。   一. git基本配置 安装git 设置 Git是分布式版本控制系统,分布式环境下工作。所以,每个机器都必须自报...
git使用代理 Git

git使用代理

如果是socks协议,查看自己本地端口(如1080),则直接使用如下命令即可: git config --global http.proxy 'socks5://127.0.0.1:1080' 查看代...