gpt4 book ai didi

Git:从源代码控制的文件中删除回车符

转载 作者:IT王子 更新时间:2023-10-29 01:29:44 26 4
gpt4 key购买 nike

我有一个 Git 存储库,其中有一些 DOS 格式的文件(\r\n 行结尾)。我只想通过 dos2unix 运行文件(这会将所有文件更改为 UNIX 格式,带有 \n 行结尾),但这对历史的影响有多严重,以及完全推荐吗?

我假设标准是始终对源代码控制的文件使用 UNIX 行结尾,并可选择在本地切换到特定于操作系统的行结尾?

最佳答案

当我们从 svn 转换到 git(在类似中央(裸)的)scm 环境中时,这个 crlf 事情让我们发疯。最终得到我们的是我们将全局 .gitconfig 文件复制到每个人的用户根目录(是的,windows 和 linux),其中第一个来自 Windows 系统并具有 core.autocrlf=true 和 core.safecrlf=false 这造成了严重破坏在 linux 用户上(比如 bash 脚本不起作用和所有那些糟糕的 ^M's)。所以我们最初做了一个检查和克隆脚本,在这些命令之后执行了一个 dos2unix。然后我遇到了 core.autocrlf 和 core.safecrlf 配置项并根据操作系统设置它们:

Windows:core.autocrlf=true 和 core.safecrlf=falseLinux:core.autocrlf=input 和 core.safecrlf=false

这些设置为:---在 Windows 上---

git config --global core.autocrlf true
git config --global core.safecrlf false

---在 Linux 上---

git config --global core.autocrlf input
git config --global core.safecrlf false

然后我们为我们的 Linux 开发人员设置了一个小的 bash 脚本/usr/local/bin/gitfixcrlf:

#!/bin/sh
# remove local tree
git ls-files -z | xargs -0 rm
# checkout with proper crlf
git checkout .

他们只需在本地沙盒克隆上运行一次。任何 future 的克隆都正确完成。任何 future 的推 pull 现在都得到了正确处理。因此,这解决了我们与换行相关的多个 O/S 问题。另请注意,Mac 属于与 Linux 相同的配置。

关于Git:从源代码控制的文件中删除回车符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2466959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com