我可以使用mSysGit和Cygwin的git吗?

时间:2009-03-27 16:36:41

标签: windows git cygwin msysgit

迁移到Windows后,我正在使用msysgit及其包含的bash shell,这对我来说效果很好。但我有问题:我们的ant构建过程不会在那个shell中运行,我想使用Cygwin的xterms而不是Windows命令窗口,因为终端兼容性不足以运行我想要的其他所有内容那个窗口,等等。

我实际上已经在Windows命令shell中坚持使用msysgit,这样我就不必使用单独的窗口来构建,但是还有更多问题:缺少cd - 并且文件完成正在扼杀我,我想要管道的大多数命令都不存在等等。

所以,如果我转而使用Cygwin的git,或者更糟糕的是,在不同的时间使用它们,那么行结尾会咬我吗? Cygwin的git会期望一切都是\n并认为它看到了变化,因为mSysGit在结账时转换为\r\n吗?将Cygwin的git检查为\n并混淆我的Windows Eclipse,我确信所有内容都是\r\n

7 个答案:

答案 0 :(得分:10)

最简单的方法是设置任何git(msysGit或Cygwin git)来忽略crlf样式。

core.autocrlf=false

这样,你就不会发生不必要的冲突。

答案 1 :(得分:3)

  

将Cygwin的git检查为\ n和   混淆了我的Windows Eclipse,我就是这样   肯定希望一切都是\ r \ n?

大多数现代应用程序(包括Eclipse)完全能够仅使用\ n。

有一些烦人的异常(例如电子邮件协议),但在大多数情况下,你可以坚持只使用\ n来处理所有事情。

所以,正如VonC所说,只需禁用autocrlf设置就可以了。

答案 2 :(得分:2)

从这篇文章 - “在Windows上使用Msysgit设置GIT服务器” - 用户建议此链接 - http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/

我使用此设置并在Windows上为我完美运行。

希望有所帮助

答案 3 :(得分:1)

实际上,坚持使用msysGit不会拯救你。我有一个问题,当使用不同版本的msysGit时,由于行结束问题,每个源文件都显示为已更改。在git配置文件中设置core.autocrlf修复了它。

答案 4 :(得分:0)

我在排队结束时头疼。我正在使用cygwin git,它总是将一些新签出的文本文件报告为“已修改”。当我将“core.autocrlf”从“true”更改为“input”时,十五个文件中的十个文件从修改后的列表中消失了,剩下的五个文件在我将“core.autocrlf”设置为“false”后消失了。

由于声誉不佳,我无法投票支持VonC的解决方案,但我认为这对我有用。

答案 5 :(得分:0)

我在msysgit中将core.autocrlf设置为false并默认安装了cygwin。

我在使用cygwin工具和msysgit附带的mingw工具从命令提示符检出时遇到问题,因为文件模式有明显变化(755似乎在每个文件中更改为644)。这似乎是关于可执行位的问题。 git reset没有帮助。

然而,从msysgit GUI窗口进行初始克隆并没有产生这个问题,现在我似乎可以从其自己的bash shell或命令提示符或其bash shell中的msysgit中自由使用cygwin。换句话说,一切似乎都很开心。

如果你看到每个文件看起来都有变化并且行结尾似乎不是导致问题的原因,那么请尝试从GUI进行检查。

答案 6 :(得分:0)

经过一段时间的调试后,我解决了这个问题。我以迂回的方式从Linux分区复制了id_rsa文件,使得行结尾为LF(Unix)格式。在eclipse中打开文件并将行结尾转换为Windows修复此问题。另外,我按照以下说明将GIT_SSH设置为Plink(来自Putty):http://www.mainelydesign.com/blog/view/git-plink-for-ssh-on-windows