我有一个Web项目(php,javascript),我是在Windows 8操作系统中开发的,位于git(bit bucket)存储库中。现在我切换到ubuntu 13.04(双启动)并使用相同的目录进行开发(在lampp中的httpd.conf中分配htdocs文件夹)而不是创建新目录。现在我已经创建了另一个SSH密钥,添加了它。但是,如果我使用'git status',它显示我必须添加,提交和推送整个项目文件(处于修改状态),尽管它不是因为这些文件已经存在于我从windows中执行的git repo中。我很迷惑。任何人都可以帮助我吗?
答案 0 :(得分:2)
您需要阅读这篇文章:https://help.github.com/articles/dealing-with-line-endings
背景:Windows使用与Unix和Mac不同的行结束字符。这是跨平台软件开发的持续悲痛和痛苦的根源。有时,git“修复”行结尾。这可以使用上面文章中的说明进行配置。然后Git会知道行结尾的变化并不意味着文件已经改变。
有时,您的IDE会注意到“哦,这个平台的行结尾是错误的”并修复它们。由于这种情况发生在没有Git知道的情况下,它会看到“有人改变了很多文件”。
确定正在发生的事情的一个好方法是使用强大的差异工具,如kdiff3
。它会告诉你诸如“除了行结尾之外的文本文件是相同的”之类的东西,或者在比较文件时你可以看到文件名附近的行模式DOS与Unix。请参阅此问题如何配置Git以使用kdiff3:Using kdiff3 to edit diffs with git