Windows 我可以使用mSysGit和Cygwin';什么是吉特?

Windows 我可以使用mSysGit和Cygwin';什么是吉特?,windows,git,cygwin,msysgit,Windows,Git,Cygwin,Msysgit,在迁移到Windows之后,我正在使用msysgit及其附带的bash shell,这对我来说很好。但我有一些问题:我们的ant构建过程不会在这个shell中运行,我想使用Cygwin的xterms而不是Windows命令窗口,因为终端兼容性不够好,无法在该窗口中运行我想要的所有其他东西,等等 实际上,我已经尝试在Windows命令shell中使用msysgit,这样我就不必使用单独的窗口来构建,但这带来了更多的问题:缺少cd-和文件完成让我很痛苦,我想使用管道传输的大多数命令都不存在,等等 所

在迁移到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

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

core.autocrlf=false
这样,就不会有不必要的冲突

Cygwin的git将作为\n和签出吗 混淆我正在使用的Windows Eclipse 是否确实希望一切都正常\r\n

大多数现代应用程序(包括Eclipse)完全可以只使用\n

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


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

事实上,仅仅使用msysGit并不能拯救您。我有一个问题,因为使用不同版本的msysGit时的行尾问题,每个源文件都显示为已更改。在git配置文件中设置core.autocrlf将其修复。

从这篇文章“在Windows上使用Msysgit安装git服务器”-一位用户建议使用以下链接-

我使用了这个设置,在Windows上完美地为我工作


希望对你有帮助

我在结尾处头疼。我使用的是cygwin git,它总是将一些新签出的文本文件报告为“已修改”。当我将“core.autocrlf”从“true”更改为“input”时,15个文件中有10个从修改后的列表中消失,其余5个在我将“core.autocrlf”设置为“false”后消失


由于声誉不好,我不能投票支持VonC的解决方案,但我认为它对我有效。

我在msysgit中将core.autocrlf设置为false,并默认使用cygwin安装的任何东西

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

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


所以,如果您看到每个文件都在变化,并且行尾似乎不是问题的原因,请尝试从GUI中签出。

在调试了一段时间后,我为我的案例解决了这个问题。我以一种迂回的方式从Linux分区复制了id_rsa文件,并将行尾保留为LF(Unix)格式。在eclipse中打开文件并将行尾转换为Windows修复了此问题。此外,我还按照以下说明将GIT_SSH设置为Plink(来自Putty):

这为我指明了正确的方向,但我认为我必须做的是从Cygwin将其设置为true。我想,为了与其他windows应用程序兼容,我必须保留CRLF样式的终止符。还有什么其他windows应用程序?正如Peter Boughton在他的回答中所说,“大多数现代应用程序(包括Eclipse)完全可以只使用\n。”实际上,我在使用不同版本的msysGit时遇到了行尾问题。显式设置autocrlf修复了它。@ted:有趣。我总是尝试将所有msysGit保持在同一版本,但没有经历过。记事本仍然无法处理\n行结尾,但我想使用的所有其他东西都可以。除非Skipoppy有一个非常特殊的上下文要求使用,否则我同意您的看法+1利益相关方的问题:您是否尝试过使用Cygwin的MSYS git?如果是,它是否有效?谢谢,msysgit不是Cygwin人。我发现我可以交替使用Cygwin的git和msysgit,只要我小心使用core.autocrlf之类的设置