相关疑难解决方法(0)

Git最好的CRLF(回车,换行)处理策略是什么?

我尝试使用CRLF结束行提交文件,但失败了.

我花了整整一天的时间在我的Windows计算机上尝试不同的策略,几乎被迫停止尝试使用Git而是尝试使用Mercurial.

每个答案只能分享一个最佳实践.

git cross-platform newline eol

588
推荐指数
9
解决办法
20万
查看次数

我为什么要在Git中使用core.autocrlf = true?

我有一个从Windows和OS X访问的Git存储库,我知道已经包含一些带有CRLF行结尾的文件.据我所知,有两种方法可以解决这个问题:

  1. 设置core.autocrlffalse无处不在,

  2. 按照指示在这里(回荡在GitHub上的帮助页)到存储库转换为只包含LF行结束,然后设置core.autocrlftrue在Windows和input在OS X上有这样做的问题是,如果我有仓库中任何二进制文件那:

    1. 在gitattributes中未正确标记为二进制文件,并且
    2. 碰巧包含CRLF和LF,

    他们会被腐化.我的存储库可能包含这些文件.

那么为什么我不应该关闭Git的行结束转换呢?网上有很多模糊的警告关于core.autocrlf关闭造成问题,但很少有具体问题; 到目前为止我唯一发现的是kdiff3无法处理CRLF结尾(对我来说不是问题),而且一些文本编辑器有行结束问题(对我来说也不是问题).

存储库是我公司的内部存储库,因此我不需要担心与具有不同autocrlf设置或行结束要求的人共享它.

是否有任何其他问题只是留下我不知道的行结尾?

git line-endings

272
推荐指数
3
解决办法
23万
查看次数

禁用git EOL转换

我试图让git不改变任何操作的任何行结尾.不幸的是,似乎这样做并不重要.我已将其缩减为以下测试用例,该测试用例具有尽可能多的不同机制来禁用此行为.


  • 从两台机器开始(Windows计算机= A,Linux计算机= B)
  • 在两台机器上: git config --global core.autocrlf false
  • 在两台机器上:( git config --global core.eol crlf以防万一)

  • 在A上创建新存储库.从空文件夹:
    • git init --shared(然后取消隐藏创建的.git目录)
    • .gitignore在存储库中创建一个新文件
    • .gitattributes使用单行在存储库中创建一个新文件:* -text
    • git add .,然后git commit -m "initial commit"解决,例如这个.
    • git branch master_recv
    • 添加遥控器
  • document.txt在包含CRLF的存储库中创建一个新文件
  • 承诺:git add -A那么git commit -m "<something>"
  • 请注意,A document.txt仍然包含CRLF(并删除它并重置并--hard返回仍然使用CRLF的版本)

  • SCP整个目录到电脑B.
  • 添加new file包含CRLF 的新文件
  • 承诺:git add -A那么git commit -m "<something>"
  • 请注意,B document.txt和B …

git

77
推荐指数
5
解决办法
5万
查看次数

什么是git的"文件模式"?

对于存在于每个单一git回购中的东西......在地球上......确实没有太多关于它的信息filemode.来自谷歌的前100个回复都到处都是,并且没有问过这个'标题的问题..所以这里是..那是什么filemode?对我来说,它在每个回购./git/config文件中,靠近顶部,一个...

 [core]
    filemode = true
Run Code Online (Sandbox Code Playgroud)

它是什么?这是什么意思?它与之有任何关系吗?

    bare = false
Run Code Online (Sandbox Code Playgroud)

我也没有真正得到......我git 像一个疯子一样使用,并且知道其他 git的无穷无尽,恕我直言,任意炮制/半脑筋 config参数......但不是这个......我是确定这是一个简单的事情(可能与权限有关?或者war会触发更改标志?),所以如果你知道更多关于如何操纵设置/以及产生什么效果......那将是很好的...

filesystems git settings config repository

32
推荐指数
2
解决办法
3万
查看次数

忽略Visual Studio Code git diff视图中的空格

在Visual Studio Code中查看文件(由GIT生成)的代码差异时是否可以忽略空格?这对于在提交之前检查实际的代码添加/删除非常有帮助.

git visual-studio-code

28
推荐指数
3
解决办法
9900
查看次数

有没有办法确定现有git仓库中的行结尾?

有没有办法确定现有git存储库中的行结尾?

如果我克隆现有存储库,如何确定创建者使用了哪个core.autocrlf?

我仍然不确定core.autocrlf的最佳设置,例如在Windows机器上(因为有多种意见: 使用代码分发git配置https://help.github.com/articles/dealing-with-line-结局)

额外的问题:您是否可以在Windows上(使用标准工具)确定repo是否在所有提交中都有混合行结尾(错误的core.autocrlf设置)?

git core.autocrlf

24
推荐指数
2
解决办法
8853
查看次数

VS Code - git 存储库有太多活动更改,只会启用 Git 功能的一个子集

我正在设置 VS Code 以处理保存在 BitBucket 中的现有 Salesforce 项目。

我将存储库克隆到我的设备上,现在当我打开 VS Code 时,我收到消息“'C:\Users[我的存储库目录]'的 git 存储库有太多活动更改,只会启用 Git 功能的一个子集.

当我转到左侧菜单中的 Git 时,它说我有 5000 个分阶段更改,并且似乎认为这些更改是我删除了文件,即使我自己转到文件路径时可以看到它们。

建议?

Visual Studio Code 详细信息:版本:1.42.0(用户设置)提交:ae08d5460b5a45169385ff3fd44208f431992451 日期:2020-02-06T10:51:34.058Z Electron: 6.1604.16.16.16.16.16.Chrome 303.31-electron.0 操作系统:Windows_NT x64 10.0.18362

消息 & Git 输出

git bitbucket visual-studio-code

14
推荐指数
5
解决办法
4万
查看次数

新克隆的 git 存储库显示有本地更改

我不太明白,为什么新克隆的 git 存储库显示有更改未提交提交。

这是一个简短的例子:

    [dpetrov@macbook-pro ~/work]$ git clone /tmp/git/pollers.git pollers
    Cloning into 'pollers'...
    done.
    [dpetrov@macbook-pro ~/work]$ cd pollers/
    [dpetrov@macbook-pro ~/work/pollers (master)]$ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.

    nothing to commit, working tree clean
    [dpetrov@macbook-pro ~/work/pollers (master)]$ git checkout pollers-1.0
    gBranch pollers-1.0 set up to track remote branch pollers-1.0 from origin.
    Switched to a new branch 'pollers-1.0'
    i
    [dpetrov@macbook-pro ~/work/pollers (pollers-1.0)]$ git status
    On branch pollers-1.0
    Your branch is up-to-date with 'origin/pollers-1.0'.

    Changes not staged for …
Run Code Online (Sandbox Code Playgroud)

git

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

如何防止“npm install”更改 package.json

我有一个 Maven 项目,我npm install在其中使用com.github.eirslett frontend-maven-plugin插件在构建中执行。

我的问题是在构建之后,git 告诉我package.json已经改变了,尽管当我检查差异(在 IntelliJ 中)它说Contents are identical. 如果我运行,stat package.json我会看到文件的所有时间戳都已更改。

如何避免 npm install 更改package.json文件?

解决方案:见答案 James Monger

git node.js npm npm-install

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

git:如何还原唯一更改是修改时间戳的所有文件?

我在 git repo 中有很多修改过的文件。

我需要修剪没有变化的那些,只有时间戳发生了变化。由于文件量很大,我需要很长时间才能手动完成。

有什么聪明的方法可以做到这一点吗?

git timestamp git-revert

4
推荐指数
1
解决办法
676
查看次数

Git 列出已更改的文件,但没有任何更改

这是极其基本的问题“为什么 Git 告诉我文件已更改但 diff 显示没有更改?”的无数个版本。类似的问题已发布在这里这里,但这些答案都没有帮助。

我的场景如下:

.gitattributes向现有的 Git 存储库添加了一个文件,其中包含多个已存在的提交。该文件的内容.gitattributes如下所示:

* text=auto

*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf

*.sh text eol=lf

*.csproj   text eol=crlf
*.filters  text eol=crlf
*.props    text eol=crlf
*.sqlproj  text eol=crlf
*.sln      text eol=crlf
*.vcxitems text eol=crlf
*.vcxproj  text eol=crlf

*.cs        text
*.config    text
*.jmx       text
*.json      text
*.sql       text
*.tt        text
*.ttinclude text
*.wxi       text
*.wxl       text
*.wxs       text
*.xaml      text
*.xml       text

*.bmp binary
*.gif binary …
Run Code Online (Sandbox Code Playgroud)

windows git

4
推荐指数
1
解决办法
5624
查看次数

`git` 显示克隆后更改的文件,无需任何其他操作

git clone git@github.com:erocarrera/pydot( 35a8d858b ) 在 Debian 中git config core.autocrlf input显示:

\n\n
modified:   test/graphs/b545.dot\nmodified:   test/graphs/b993.dot\nmodified:   test/graphs/cairo.dot\n
Run Code Online (Sandbox Code Playgroud)\n\n

这些文件具有 CRLF 行结尾,例如:

\n\n
$ file test/graphs/cairo.dot\ntest/graphs/cairo.dot: UTF-8 Unicode text, with CRLF line terminators\n
Run Code Online (Sandbox Code Playgroud)\n\n

.gitattributes文件包含

\n\n
*.py eol=lf\n*.dot eol=lf\n*.txt eol=lf\n*.md eol=lf\n*.yml eol=lf\n\n*.png binary\n*.ps binary\n
Run Code Online (Sandbox Code Playgroud)\n\n

更改core.autocrlf不会影响这些文件的状态。删除.gitattributes也没有效果。更改这些文件dos2unix不会改变它们的状态(如预期),并且返回显示与旧副本unix2dos没有区别。diff文件权限看起来没有变化ls -lsa。另外,据我所知,这些文件具有统一的行结尾vi -b(因此不应该是这种情况unix2dos,或者dos2unix从混合行结尾转换为统一的行结尾,这可以解释这种奇怪的行为)。我使用的是git2.11.0 版本。

\n\n

什么是git变化?

\n\n

有点相关: …

git newline eol gitattributes core.autocrlf

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