Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 古代吉特回购vs现代吉特克隆拷贝,CRLF vs LF行结尾_Git - Fatal编程技术网

Git 古代吉特回购vs现代吉特克隆拷贝,CRLF vs LF行结尾

Git 古代吉特回购vs现代吉特克隆拷贝,CRLF vs LF行结尾,git,Git,如果这是重复的,请指给我看 我面临的问题是,从存储库克隆后,git status立即表示大量文件已更改。我什么都没变;我刚从回购协议中克隆出来。问题是CRLF与LF行结束 有关事实: repo在一台Unix机器上运行一个古老版本的git,版本1.7.1 repo是通过一个Eclipse插件从一台使用CRLF行结尾的机器上填充的,该机器有一个稍微现代的git版本(确切的版本号未知) 我的机器使用LF线端点,并且有一个git的现代版本,版本2.3.0 克隆repo时,所有文本文件都有CRLF行结

如果这是重复的,请指给我看

我面临的问题是,从存储库克隆后,
git status
立即表示大量文件已更改。我什么都没变;我刚从回购协议中克隆出来。问题是CRLF与LF行结束

有关事实:

  • repo在一台Unix机器上运行一个古老版本的git,版本1.7.1

  • repo是通过一个Eclipse插件从一台使用CRLF行结尾的机器上填充的,该机器有一个稍微现代的git版本(确切的版本号未知)

  • 我的机器使用LF线端点,并且有一个git的现代版本,版本2.3.0

克隆repo时,所有文本文件都有CRLF行结尾。那很好;我的机器可以做到这一点。不好的是,
git status
表示每个文本文件都已更改。这是不能接受的;我(还)什么都没变

我可以控制我的机器和repo机器上的git config和git属性。我无法控制回购机器上git的版本,也无法控制git在使用CRLF行结尾的机器上的使用方式


问题:
本地或repo上的哪些设置将使我能够克隆该repo并使git状态
保持不变


更新:
请不要告诉我:

  • 使用git config--global core.autocrlf

请不要告诉我,原因有二

一个原因是,即使它确实有效,这也不是我想要的解决方案。我的大多数用例都涉及使用LF而不是CRLF行结尾的机器的人。不知何故,那些讨厌的CRLF行尾设法偷偷进入(这是颠覆的一个大问题)。git的现代版本将这个问题扼杀在萌芽状态。在这一个案例中,我正在和一个非常以CRLF为中心的行业工作的人打交道。这一个案例是例外,而不是规则。请不要告诉我使用
git config--global
来处理这种特殊情况

另一个原因是它不起作用。我已经试过了。我尝试了很多东西,但我总是得到
git状态| grep修改:| wc-l
是一个很大的数字。应该是零


如果全局或本地core.autocrlf设置没有得到您想要的结果,您可以设置git line ending属性并强制获得您要查找的结果

# Set eol conversions on all text-based files to 'nothing'
echo '* text' >> .gitattributes
# Force git to re-scan dir
rm .git/index
git reset
# Review current files
git status
注:通常下线设置为:

* text=auto

我已经试过了;它不起作用(两个选项)
git status
表示所有以CRLF结尾的文件都已更改。CRLF结尾在回购协议和签出文件中。没有区别,但git认为有区别。注意:我还尝试在服务器上的git config文件中进行此设置。那也不行。在克隆中,git认为每个文本文件都已更改。