相关疑难解决方法(0)

Git:用git hook将回车符\ r转换为新行\n?

一个编码员使用Windows计算机,在我们的源代码中随处可见回车.

有没有办法写一个git钩子,将所有转换\r\n\n

注意我以前没有使用git hooks,所以一点点额外的手持可能会有很长的路要走:)

git newline githooks

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

在GIT中是否有一种方法,如果更改的字符少于2个,则删除已提交的文件?

我一直在研究一个项目,并在一个文件夹中编辑了一堆文件.此文件夹驻留在我的本地,而不是由GIT监视.我通常会将整个文件夹复制到GIT观看的另一台计算机中,然后将其推送到回购站.现在的问题是,由于行结尾和空格被显示,一堆文件被显示为已更改,因为它正从windows复制到linux盒子.

我执行了以下命令:git diff --stat显示所有更改的行/字符更改的文件.

在此输入图像描述

正如您所看到的,这些文件中的许多文件都没有进行任何更改.但是,它们仍然显示在我的git状态修改部分.

我如何删除或恢复这些恢复正常,因为我从未改变这些文件的任何内容?

git diff git-diff

8
推荐指数
2
解决办法
155
查看次数

git init - 'core.autocrlf'中的错误数字配置值'auto'

刚刚开始使用git 15分钟前已经麻烦了......该死的.

好吧,正如我在标题中写的那样,我目前正在使用git-scm书籍:http://git-scm.com/book

在2.1 - 获取Git存储库中,它说:

如果您开始在Git中跟踪现有项目,则需要转到项目的目录并键入

$ git init
Run Code Online (Sandbox Code Playgroud)

这正是我在做什么,但不知何故,我在这里得到这个错误信息:

fatal: bad numeric config value 'auto' for 'core.autocrlf' in C:\Program Files 
(x86)\Git(etc/gitconfig: invalid unit
Run Code Online (Sandbox Code Playgroud)

我按照书中的说法配置了所有内容...我在这里有点无助,特别是因为我完全没有使用git和google的经验似乎在这种情况下非常有帮助.._.

编辑:继承人截图,也许它可以帮助你:

._.

git

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

如何更改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
查看次数

根据用例正确设置git autocrlf

我正在搜索根据某些用例使用的正确设置,但找不到任何描述相同的来源.因此,我要求这个问题作为任何寻找git的autocrlf选项正确设置的人的解决方案.

使用案例1:我在Mac上,其他开发人员都在Windows上.他们在我加入之前管理源代码.

使用案例2:我在Windows上,其他开发人员都在Mac上.他们在我加入之前管理源代码.

用例3:我在Linux上,其他开发人员都在Windows上.他们在我加入之前管理源代码.

用例4:我在Windows上,其他开发人员都在Linux上.他们在我加入之前管理源代码.

使用案例5:我在Linux上,其他开发人员都在Mac上.他们在我加入之前管理源代码.

使用案例6:我在Mac上,其他开发人员都在Linux上.他们在我加入之前管理源代码.

我应该使用什么设置的git core.autocrlf?

编辑: 为什么这个问题不是许多类似问题的重复:

所有其他问题及其答案提供了所需的事实和知识,这使得读者需要做很多事情.这个问题旨在询问具体方案的具体答案.

git github core.autocrlf gitlab

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

通过.gitattributes强制执行core.autocrlf = input

有没有办法core.autocrlf=input从内部强制执行.gitattributes以便在整个同事中传播策略?

在细节我要的是转换为lf添加并保留as is结帐.

问题在于既没有texteol没有我想要的东西,.gitattributes因为它eol有3个可接受的值:

  1. lf
  2. crlf
  3. native

理想情况下,我希望我的.gitattributes文件看起来像这样:

* text eol=asis

git line-endings eol gitattributes core.autocrlf

7
推荐指数
2
解决办法
2546
查看次数

Git + Windows + Visual Studio合并由分支之间的行结束问题引起的冲突

我正在努力正确地合并到分支机构.分支似乎有行结束问题,因为当我打开Visual Studio中的冲突窗口时,它显示0个冲突和0个不同文件之间的差异.

我在两个分支上添加了一个gitattributes文件,它在两个存储库中查找并执行了存储库刷新.

当我刷新两个存储库时,没有提交更改,即使指令指出将提交更改(实际上更改来自EOL转换).

这是我的gitattributes

# Auto detect text files and perform LF normalization
* text=auto

# Custom for Visual Studio
*.cs     diff=csharp

# Standard to msysgit
*.doc    diff=astextplain
*.DOC    diff=astextplain
*.docx   diff=astextplain
*.DOCX   diff=astextplain
*.dot    diff=astextplain
*.DOT    diff=astextplain
*.pdf    diff=astextplain
*.PDF    diff=astextplain
*.rtf    diff=astextplain
*.RTF    diff=astextplain
Run Code Online (Sandbox Code Playgroud)

我也检查过,我的全局core.autocrlf等于true(因为我们所有的开发人员都在Windows上使用Visual Studio)

问题是,当我继续做以上操作以期在两个分支中修复和规范化这些分支时,我最终会遇到比以前更多的冲突 - 所有这些都是由于行结束:

在此输入图像描述

.git/config文件(不包括分支引用)

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = …
Run Code Online (Sandbox Code Playgroud)

git github visual-studio git-merge-conflict

6
推荐指数
1
解决办法
4320
查看次数

git中的行结尾

我是git的新手,我之前使用的是svn,我们遇到了由行尾(CRLF和LF)引起的问题.现在我担心这也会在git中再次发生,我担心的原因是不同的开发人员使用不同的操作系统.我正在使用带有Linux VM的Windows系统作为我的开发环境.所以项目代码在linux上,我在windows上编辑它.在vm我有git我用来推拉等我应该启用autocrlf为真吗?它会阻止我的问题吗?但我看到一些商品我应该只在windows中设置autocrlf = true.我希望有人可以提供有用的建议:-)

提前致谢.

git

5
推荐指数
1
解决办法
267
查看次数

行结尾不遵循 VS Code 中的默认设置

当我尝试推送到 GitHub 时,每次我都会收到这样的警告:

warning: LF will be replaced by CRLF in app/bingey-api/models/user.js.
The file will have its original line endings in your working directory
Run Code Online (Sandbox Code Playgroud)

即使我在这些地方将行结尾设置更改为“/n”:

用户 -> 文本编辑器 -> 文件 -> Eol:

在此输入图像描述

另外,工作区 -> 文本编辑器 -> 文件 -> Eol:

在此输入图像描述

我的 ESLint 选项文件也有默认行结尾“\n”:

在此输入图像描述

Prettier 也配置为默认的“\n”结束符:

在此输入图像描述

这很奇怪,也许有人知道我还应该在哪里更改设置?谢谢。

formatting line-endings eol visual-studio-code

5
推荐指数
1
解决办法
3422
查看次数

git diff 没有差异,但由于行结尾的改变,不应该有一些差异吗?

我的问题可能来自于对 Git 某些方面的误解。当我因 Windows 机器上的更改而在 Mac 上将 CRLF 更改为 LF 行结尾时,我想到了这个问题。

1) 我首先在 OSX 上初始化一个新存储库,并将所有文件放入受 CRLF 行结尾影响的文件中。

2)第一次提交,由于设置了 core.autocrlf = input ,git 自动将行结尾更改为 LF

我的本地工作树中的文件仍然具有 CRLF 行结尾,但这里也提供了解决方案(How to Normalizeworking tree lineendings in Git?):

删除Index中的文件,并根据上次commit恢复索引+工作树:

git rm --cached -r .
git reset --hard
Run Code Online (Sandbox Code Playgroud)

现在出现了混乱:我的第一个提交 1) 包含转换后的 LF 行结尾,而我的本地树和索引则不包含。因此,我的期望是 git 应该显示工作树/索引和存储库之间的差异。但

git diff HEAD
git diff --chached
Run Code Online (Sandbox Code Playgroud)

没有列出任何更改?

git

3
推荐指数
1
解决办法
1239
查看次数

autocrlf 和 eol 有什么区别

我正在阅读有关解决混合行结尾问题的git 文档.gitattributes,并发现有两个类似的设置。

自动CRLF:

行尾转换 虽然 Git 通常不考虑文件内容,但它可以配置为将存储库中的行尾规范化为 LF,并且可以选择在签出文件时将它们转换为 CRLF。

如果您只想在您的工作目录中使用 CRLF 行结尾而不管您使用的是哪个存储库,您可以设置配置变量“core.autocrlf”而不使用任何属性。

[core] autocrlf = true 这不会强制文本文件的规范化,但确实确保您引入存储库的文本文件在添加时将其行尾规范化为 LF,并且已在存储库中规范化的文件保留归一化。

和停产:

此属性设置要在工作目录中使用的特定行结束样式。它可以在没有任何内容检查的情况下进行行尾转换,有效地设置文本属性。

设置为字符串值“crlf” 此设置强制 Git 在签入时对此文件的行尾进行规范化,并在签出文件时将其转换为 CRLF。

设置为字符串值“lf” 此设置强制 Git 在签入时将行尾规范化为 LF,并防止在签出文件时转换为 CRLF。

与 crlf 属性的 向后兼容性 为了向后兼容, crlf 属性解释如下:

文本

-crlf -text

crlf=输入 eol=lf

似乎两者都在做同样的事情,但有一些关于compatibility. 这是否意味着,这autocrlf已被弃用,而新口味是eol什么?我目前有一个包含多个损坏文件的存储库,我想将其转换为crlf表示形式。你会看到文档让我们困惑而不是澄清事情。

在这种情况下我应该申请什么?

git gitattributes

2
推荐指数
1
解决办法
936
查看次数