Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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
在mac和windows vm之间共享git repo,而不更改行尾文件 问题_Git_Macos_Window_Line Endings - Fatal编程技术网

在mac和windows vm之间共享git repo,而不更改行尾文件 问题

在mac和windows vm之间共享git repo,而不更改行尾文件 问题,git,macos,window,line-endings,Git,Macos,Window,Line Endings,通过Parallels在Mac上运行Windows,我们似乎无法找到正确的Git设置,因此无法更改行结束文件 细节 Git repo位于Windows虚拟机上,是一个共享驱动器,我们可以在Mac上访问它,以便编辑代码 我读过很多关于StackOverflow的文章,但它们似乎并不能解决这个问题 是否可以在Windows中处理cSharp文件,并从命令行进行提交 然后滑到Mac上,编辑一些javascript,然后在Mac终端中进行提交,而不必在其他不相关的文件上不断进行行尾更改 我们一直在使用c

通过Parallels在Mac上运行Windows,我们似乎无法找到正确的Git设置,因此无法更改行结束文件

细节 Git repo位于Windows虚拟机上,是一个共享驱动器,我们可以在Mac上访问它,以便编辑代码

我读过很多关于StackOverflow的文章,但它们似乎并不能解决这个问题

是否可以在Windows中处理cSharp文件,并从命令行进行提交

然后滑到Mac上,编辑一些javascript,然后在Mac终端中进行提交,而不必在其他不相关的文件上不断进行行尾更改

我们一直在使用core.autocrlf、core.eol和.gittributes,但似乎不管我们做什么,一个操作系统或另一个操作系统都会显示大量的文件更改(最终是行尾),但我们的编辑器没有进行更改

我可以在windows上做一个克隆,然后在mac上做一个git状态,这样看起来就像每个文件都改变了一样

问题: 设置需要是什么

步骤1:在Windows上 //在一个新的分支上

git rm --cached -r .
git reset --hard
git commit "Reset Line Endings" //(I expected this to be larger).
[line 4d14aa1] Reset EOL
9 files changed, 12910 insertions(+), 12910 deletions(-)

git status

$ git status
On branch line
nothing to commit, working directory clean
步骤2:在Mac上 步骤3:在Windows上 .gittributes
我给你们的建议是让你们的整个开发团队都同意一种通用的代码格式,包括行尾。这样,当一个开发人员试图在Windows上提交上次在Mac(即Linux)上编辑的文件时,就不会有任何摩擦。Git很有礼貌地告诉您行尾可能会改变。然而,我相信更好的处理方法不是依赖Git,而是在所有机器上就通用格式达成一致

在我做过的许多软件工作中,我都看到了代码格式方面的问题。这不仅限于行尾,还可能与间距和制表符有关。让每个人都同意一种格式可以节省时间并避免不必要的合并冲突

以下是有关如何在主要IDE中配置行尾分隔符的链接:




之后,您可以在配置文件中添加这些选项,将其存储在存储库中并使用;-)
git rm --cached -r .
git reset --hard
git commit "Reset Line Endings" //(I expected this to be larger).
[line 4d14aa1] Reset EOL
9 files changed, 12910 insertions(+), 12910 deletions(-)

git status

$ git status
On branch line
nothing to commit, working directory clean
git config --unset core.eol
git config --global core.autocrlf input
git status
modified:   tools/NUnit2.5.3/nunit-agent-x86.exe.config
modified:   tools/NUnit2.5.3/nunit-agent.exe.config
modified:   tools/NUnit2.5.3/nunit-console-x86.exe.config
modified:   tools/NUnit2.5.3/nunit-console.exe.config
modified:   tools/NUnit2.5.3/nunit-x86.exe.config
modified:   tools/NUnit2.5.3/nunit.exe.config
modified:   tools/NUnit2.5.3/pnunit-agent.exe.config
modified:   tools/NUnit2.5.3/pnunit-launcher.exe.config
modified:   tools/NUnit2.5.3/runFile.exe.config
modified:   tools/NUnit2.5.3/runpnunit.bat
modified:   tools/NUnit2.5.3/test.conf
modified:   tools/StyleCop 4.3.1.3/ReSharper-code-style-settings.xml
modified:   tools/StyleCop 4.3.1.3/Settings.StyleCop
...(100's of other files)
git status
Same output as above
* text=auto

# These files are text and should be normalized (convert crlf => lf)
# Git Files
.gitattributes text
.gitignore text
.gitconfig text

# cSharp / Visual Studio

*.bat     text eol=crlf
*.cmd     text
*.cs      text  diff=csharp eol=crlf
*.csproj  text
*.h       eol=crlf
*.md      text
*.msbuild text
*.ps1     text
*.sdf     binary
*.sln     text  eol=crlf
*.tt      text
*.xaml    text

# Web
*.css     text
*.sass    text
*.json    text
*.js      text
*.htm     text
*.chm     binary
*.html    text
*.xml     text
*.svg     text  eol=lf

# Images & Media
*.png     binary
*.jpg     binary
*.jpeg    binary
*.gif     binary
*.ico     binary
*.mov     binary
*.ico     binary
*.pdf     binary


# Compression
*.gz      binary
*.zip     binary
*.7z      binary
*.nupkg   binary

# Fonts
*.ttf       binary
*.eot       binary
*.woff      binary

# Documents
*.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
*.md text
*.adoc text
*.textile text
*.csv text
*.tab text
*.tsv text
*.sql text
*.psd binary
*.ai binary
*.eps binary

# Compiled Dynamic libraries
*.so      binary
*.dylib   binary
*.dll     binary
*.pdb     binary

# Compiled Static libraries
*.lai   binary
*.la    binary
*.a     binary
*.lib   binary
*.llblgenproj binary

# Executables
*.exe binary
*.out binary
*.app binary

# Security
*.p12 binary
*.cer binary