标签: core.autocrlf

即使autocrlf设置为false,也会在checkout,reset --hard等之后修改Git文件

这是我的系统对话:

unrollme-dev-dan:views Dan$ git reset --hard HEAD
HEAD is now at 3f225e9 Fix scan titles
unrollme-dev-dan:views Dan$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   app/signup/finish.html
#   modified:   app/signup/scan.html
#
Run Code Online (Sandbox Code Playgroud)

我将autocrlf设置为false:

unrollme-dev-dan:unroll-website Dan$ git config core.autocrlf
unrollme-dev-dan:unroll-website Dan$ 
unrollme-dev-dan:unroll-website Dan$ git config --global core.autocrlf
unrollme-dev-dan:unroll-website Dan$
Run Code Online (Sandbox Code Playgroud)

而且我没有任何.gitattributes文件弄乱了这个:

unrollme-dev-dan:unroll-website Dan$ find …
Run Code Online (Sandbox Code Playgroud)

git newline core.autocrlf

15
推荐指数
1
解决办法
4605
查看次数

如何在GIT存储库中修复CRLF以避免合并冲突

我创建了我的回购,autocrlf=true然后做了一些检查和提交autocrlf=false.然后切换回autocrlf=true(OS Win).一切似乎都没问题,直到我开始分支之间的一些合并.出现了许多合并冲突,其中整个文件由于更改而被标记为已更改eols(我认为这些文件是已检出并提交的autocrlf=false).

有一些历史,对我来说是值得的,所以我更喜欢做一些转换或修改提交转换eols而不是创建新的回购并开始新的生活.

这就是我的理解autocrlf(OS Win):

如果是的话 autocrlf=true

WorkingTree ->  commit  -> GITRepository
CRLF         CRLF to LF      LF
LF           no conv.        LF
WorkingTree <- checkout <- GITRepository
CRLF         LF to CRLF      LF
Run Code Online (Sandbox Code Playgroud)

如果是的话 autocrlf=false

WorkingTree ->  commit  -> GITRepository
CRLF         no conv.      CRLF
LF           no conv.      LF
WorkingTree <- checkout <- GITRepository
CRLF         no conv.      CRLF
LF           no conv.      LF
Run Code Online (Sandbox Code Playgroud)

现在我想使用GIT autocrlf=false,所以我决定检查每个分支,eols使用实用程序EOL转换器修复源文件并使用CRLF提交.我做到了,但是时间后,仍有一些文件,这可能是没有签出后,我改变了设置 …

git core.autocrlf

12
推荐指数
1
解决办法
6061
查看次数

Git core.safecrlf对具有相同行结尾的文件的不同行为

我有带VS项目的Windows机器,我使用Visual Studio和Cygwin环境中的工具,包括Git.有时我在编辑后会在文件中得到不同的行结尾.我想要简单的解决方案来检查文件的行结束一致性,然后再去回购.core.safecrlf我认为Git 是正确的.现在我有一个奇怪的行为:

文件AB以下参数:

$file A
A: HTML document, UTF-8 Unicode text, with CRLF line terminators
$file B
B: HTML document, UTF-8 Unicode (with BOM) text, with CRLF line terminators
Run Code Online (Sandbox Code Playgroud)

文件A已经在repo中,文件B是新的.注意,两者都有CRLF行结尾.现在尝试上演他们,core.safecrlftrue.

$git add A  # ok
$git add B  # fails
fatal: CRLF would be replaced by LF in B.
Run Code Online (Sandbox Code Playgroud)

core.safecrlf正确使用?或者我可能需要编写钩子来检查文件?

笔记:

  • 试过不同的文件编码(有和没有BOM),没有区别.
  • core.autocrlfGit中有相关功能,将其添加到标签中(Stackoverflow没有标签core.safecrlf)
  • git版本1.8.5.rc1.17.g0ecd94d(从Cygwin下的源代码编译)

编辑#1:签出core.autocrlf- 它是input.改为false,现在我可以添加两个文件.为什么?

windows git cygwin newline core.autocrlf

12
推荐指数
1
解决办法
1万
查看次数

使用SmartGit时如何更改core.autocrlf?

我对终端的版本控制没有任何经验,但据我所知,SmartGit没有终端也没有使用我可以通过终端配置的外部git客户端,所以我真的不知道我怎么能在它上面执行git配置命令.具体来说,我想做:

git config --global core.autocrlf true
Run Code Online (Sandbox Code Playgroud)

它是否具有UI中可用的等效配置选项,还是有其他方法可以应用此选项?

git core.autocrlf smartgit

10
推荐指数
2
解决办法
6986
查看次数

如何用 .gitattributes 表达 core.autocrlf = false?

这真太了不起了。网上有无数的帖子core.autocrlf.gitattributes我还是不知道该写什么.gitattributes来表达core.autocrlf = false

有人能清除它周围的雾气吗?我并不需要所有花哨的情况下,就给我core.autocrlf = false.gitattributes。没有更多,但也没有更少。

git gitattributes core.autocrlf

10
推荐指数
1
解决办法
1309
查看次数

为什么我在源文件中获得CRLF换行符,尽管我在使用Git和IDEA的Mac + Linux环境中?

我的老板和我是唯一从事我们项目的人,我们只使用Mac进行开发.我们正在进行groovy/grails开发,并部署到Linux服务器.在我们的开发过程中任何地方都没有使用MS Windows,但不知何故,当我在bash shell中使用git对文件进行区分时,我最终会看到那些^M表示CR的愚蠢字符(以及换行符,CRLF) ).

这出现在无处不在的文件中.

我在网上搜索了哪里设置IntelliJ IDEA只使用LF作为行结尾但找不到它.谷歌搜索关于IDEA的答案的难度加剧了我的挫败感.

我想做这些事情:

  1. 在我的机器(OS X)上配置git以绝对拒绝任何CRLF.

  2. 另外,我使用gitolite作为我们的中央存储库服务器(即Ubuntu Linux)的访问层.如果有可能在gitolite中强制拒绝CRLF,那就更好了.

  3. 将IntelliJ IDEA配置为永不保存为CRLF.如果可能,甚至可以使它对于充满CRLF的现有文件,如果我添加太多空格并点击保存,则所有 CRLF都被剥离(转换为单个LF).

我认为自己一般都非常精通Git,但我对CRLF的所有配置感到非常困惑.有人可以告诉我所有这些设置应该适用于我的职位吗?

这里的要点是纯粹的*nix/LF-line-ending环境,我不想处理任何CRLF废话.这应该是绝对没有问题的,我讨厌处理它(如果你不知道).

我想让CRLF永远离开我的生活.

git intellij-idea core.autocrlf

9
推荐指数
1
解决办法
8180
查看次数

如何避免git-svn和svn CRLF等问题呢?

我正在使用git svn,今天我遇到了一些麻烦.

我做了一段时间git svn clone,并在我的项目上工作了一段时间.几天后,我把我的工作推到了svn remote(git svn dcommit).然后我试图用TortoiseSVN检查项目,看看一切是否正确.不幸的是,一切都转换为Unix行结尾,VC6无法打开项目.

所以,我的git工作副本是CRLF,但我的svn工作副本是LF.我假设git在git commit或期间转换它git svn dcommit.

如果我设置core.autocrlf = false我的git工作副本,我是否可以假设我可以避免所有这些麻烦?这种强迫git会单独留下新线吗?还有什么需要做的才能让git svn易于使用而不会给我的同事带来麻烦吗?

(也可能有趣的是,我之前在同一台机器上使用过git svn,没有触及设置,这是第一次发生这样的事情.)

git newline git-svn eol core.autocrlf

9
推荐指数
1
解决办法
3428
查看次数

git存储库是否有自己的core.autocrlf本地值,它会覆盖全局值?

根据这个问题,我知道git中的core.autocrlf = true会导致CRLF转换为LF.

但是,当我键入:git config core.autocrlf

我明白了:假

但是,当我暂存已经在repo中的已修改文件时,我仍然会收到以下警告:

Warning: CRLF will be replaced by LF in File1.X.
The file will have its original line endings in your working directory.
Run Code Online (Sandbox Code Playgroud)

我的猜测是文件的repo副本已经设置为"autocrlf = true".

问题:A.如何查询文件或git仓库是否已经强制AutoCrlf?B.如何关闭autocrlf?

git core.autocrlf

9
推荐指数
1
解决办法
4196
查看次数

git add 抛出警告“CRLF 将被 &lt;file-name&gt; 中的 LF 替换”

我最近开始从事 Xamarin 跨平台开发。虽然我团队中的一些开发人员使用 Mac 进行开发(使用 Visual Studio for Mac),但其他人使用 Windows(使用 Visual Studio 2017)。我们使用 git/github 作为我们的代码存储库/版本控制系统。

在我做了一些更改并添加了一些新文件后,我发布git add .了所有更改,但我收到了这样的警告

warning: CRLF will be replaced by LF in <file-name>.
The file will have its original line endings in your working directory
Run Code Online (Sandbox Code Playgroud)

我检查了我的 git 配置core.autocrlf=input,根据我的理解和这里的文档https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration,这是 Mac 的正确设置。

但是,我不确定上面的警告,因为我以前从未见过它。我发现它更令人困惑,因为并非我添加的所有文件都显示此警告,而仅显示一些。

我已经阅读了很多关于这个问题的帖子,但没有一个接缝可以清楚地解释这些警告是否可以或不能被忽略。或者是否需要修复它们以及如何为像我的团队一样使用 Windows 和 MacOS 的团队修复它们。

我是否需要担心这个警告,对于像我这样在 Windows 和 MacOS 机器上工作的团队来说,这究竟意味着什么?

git git-add core.autocrlf

8
推荐指数
1
解决办法
6767
查看次数

如何更改git status的行为,显示最终未提交的已修改文件?

我在一个仅限Windows的工作环境中工作,开发人员使用各种工具来编辑他们的文件.我们正在使用.gitatlassian堆栈来编写代码版本.我几乎都喜欢它.

我刚刚结束了一场漫长而艰苦的斗争,围绕着如何以及为什么git解释行结尾以及为什么core.autocrlf这样做.我们决定使用core.autocrlf true,一切都很好.

我很想知道如何改变这种行为git status:

  • 我有一个带CRLF行结尾的文件.
  • 我将行结尾更改为 LF

    $ git status
    On branch somebranch
    Changes not staged for commit:
        (use "git add <file>..." to update what will be committed)
        (use "git checkout -- <file>..." to discard changes in working directory)
    
    modified:   Src/the_file_i_changed_to_LF.js
    
    Run Code Online (Sandbox Code Playgroud)
  • 但是之后...

    $ git commit -a
    warning: LF will be replaced by CRLF in Src/the_file_i_changed_to_LF.js.
    The file will have its original line endings in your working directory.
    On branch …
    Run Code Online (Sandbox Code Playgroud)

windows git end-of-line core.autocrlf

7
推荐指数
1
解决办法
292
查看次数