gpt4 book ai didi

git - 在没有行结束文件更改的情况下在 mac 和 windows vm 之间共享 git repo

转载 作者:太空狗 更新时间:2023-10-29 14:18:22 26 4
gpt4 key购买 nike

问题

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

详情

Git 存储库位于 Windows 虚拟机上,是我们可以在 Mac 上访问的共享驱动器,因此我们可以编辑我们的 Angular 代码。

看了很多StackOverflow上的文章,好像都没有解决问题。

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

然后滑到 Mac,编辑一些 javascript,然后在 mac 终端中进行提交,而不会不断地对其他不相关的文件进行行结束更改?

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

我可以在 Windows 上做一个克隆,然后在 Mac 上做一个 git status,它会让它看起来像每个文件都改变了。

问题

需要设置什么?

第 1 步:在 Windows 上

git config --global --unset core.eol
git config --global core.autocrlf true

//在一个新的分支上

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 上

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)

第 3 步:在 Windows 上

git status
Same output as above

.git 属性

* 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

最佳答案

我对您的建议是让您的整个开发团队就通用代码格式达成一致,包括行尾。这样,当开发人员尝试在 Windows 上提交最后一次在 Mac(即 Linux)上编辑的文件时,永远不会有任何摩擦。 Git 很仁慈地告诉你行尾可能会改变。然而,我相信处理这个问题的更好方法是依赖 Git,而是就所有机器的通用格式达成一致。

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

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

IntelliJ
Eclipse
Netbeans

关于git - 在没有行结束文件更改的情况下在 mac 和 windows vm 之间共享 git repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33295867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com