相关疑难解决方法(0)

在Windows中获取文件的编码

这不是一个真正的编程问题,是否有命令行或Windows工具(Windows 7)来获取文本文件的当前编码?当然我可以写一个小C#应用程序,但我想知道是否有内置的东西?

windows encoding

178
推荐指数
8
解决办法
29万
查看次数

强制LF eol在git repo和工作副本中

我在github上托管了一个git存储库.许多文件最初是在Windows上开发的,我对行结尾并不太谨慎.当我执行初始提交时,我也没有任何git配置来强制执行正确的行结束.结果是我的github存储库中有许多带有CRLF行结尾的文件.

我现在部分在Linux上开发,我想清理行结尾.如何确保文件在github上使用LF正确存储,并在我的工作副本中使用LF?

我已经设置了一个.gitattributes包含text eol=LF; 那是对的吗?有了这个承诺和推动,我可以只是rm我的本地仓库并从github重新克隆以获得所需的效果吗?

git github eol

153
推荐指数
4
解决办法
8万
查看次数

C编程:如何将整个文件内容读入缓冲区

我想将文件的全部内容写入缓冲区.该文件实际上只包含一个我需要与字符串进行比较的字符串.

什么是最有效的选项,即使在Linux上也可以移植.

ENV:Windows

c file-io

75
推荐指数
2
解决办法
17万
查看次数

线路结尾搞砸了Git - 如何在一个巨大的线路结束修复后跟踪另一个分支的变化?

我们正在使用第三方PHP引擎来定期更新.这些版本保存在git中的一个单独的分支上,而我们的fork是主分支.

这样我们就可以从新版本的引擎中将补丁应用到我们的fork中.

我的问题是,经过对我们分支的许多提交后,我意识到引擎的初始导入是通过CRLF行结尾完成的.

我将每个文件转换为LF,但这做了一个巨大的提交,删除了100k行并添加了100k行,这显然打破了我们打算做的事情:从第三方引擎的工厂版本中轻松合并补丁.

我知道什么?我怎样才能解决这个问题?我的fork上已经有数百个提交.

最好的方法是在初始导入之后以及在分支我们自己的fork之前以某种方式执行行结束修复提交,并在历史记录中删除那个巨大的行结束提交.

但是我不知道如何在Git中这样做.

谢谢!

git history rewrite branch newline

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

在git HEAD中查找所有二进制文件

我有一个巨大的git repo,最终想用bfg清理.
但首先,我想跟踪并删除HEAD哪个git视为二进制文件...

所以,我正在寻找的是一个命令来查找HEAD中git视为二进制文件的所有文件.

这些没有帮助:

预先感谢您的帮助.

git

18
推荐指数
4
解决办法
4113
查看次数

如何列出git存储库中的所有文本(非二进制)文件?

我有一个存储库,其中包含许多自动生成的源文件,我已将其标记为"二进制" .gitattributes(它们已签入,因为并非每个人都可以访问生成器工具).另外,repo在被忽略的目录中有很多source-ish文件(再次,作为构建过程的一部分生成),以及许多实际的二进制文件(例如像图标这样的小资源文件).

我现在想在repo中找到所有非自动生成和非忽略的文件.我以为我只是做了这个find和一些排除,但现在我有一个可怕的find声明与十几个条款(它仍然不完美的工作).git ls-files有效,但显示所有二进制文件没有区别,我必须过滤掉.

所以,我想知道:是否有一个简单的命令我可以运行,它列出了检查到repo的每个文件,并git考虑了一个"文本"文件?

git text-files

16
推荐指数
1
解决办法
2590
查看次数

SourceTree 无法显示大文本文件的 GIT 差异(或将其视为二进制文件)

我正在尝试使用 GIT 来跟踪对相当大的 XML 文件(大约 3 Mb)的更改。该文件采用 UTF-8 格式,以 CRLF 行结尾(我在 Windows 10 中工作)。但由于某种原因,GIT 一直认为它是二进制文件,并且不显示任何差异。或者只是无法检测到变化。

Sourcetree 中的差异显示消息“未检测到此文件中的任何更改,或者它是一个二进制文件”

我尝试在.gitattributes中显式设置属性,但似乎这不是原因:

 *.xml crlf diff
Run Code Online (Sandbox Code Playgroud)
   git check-attr --all -- sorkin.xml
   sorkin.xml: diff: set
   sorkin.xml: crlf: set 
Run Code Online (Sandbox Code Playgroud)

我发现当我将大文件切成三个较小的部分(小于 1 Mb)时,GIT 会正确显示它们的更改。

计算 diff 时,GIT 对文件大小有限制吗?

git atlassian-sourcetree

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

默认情况下,Git 将哪些文件类型视为二进制文件?

我知道如何使用 gitattributes 强制 Git 将例如 JPEG 文件视为二进制文件,但实际上 Git 的默认二进制文件列表是什么?或者有吗?我在我的系统上发现了似乎是系统范围的 gitattributes 文件,这是它的内容:

*.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)

这是否意味着默认情况下图像不被视为二进制文件?

编辑:理论上也可能涉及一些“猜测”算法,但我还没有找到任何细节。

git

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

为什么GIT本身不支持UTF-16

GIT中支持多种不同的编码方案:UTF-7UTF-8UTF-32,以及非UTF的。

鉴于此,它为什么不支持UTF-16

有很多问题询问如何获取git以支持UTF-16,但我认为这尚未明确提出或得到回答。

git utf-16

5
推荐指数
3
解决办法
1190
查看次数