因此,在我的工作场所,我们有许多员工使用Windows和Linux系统的混合体,Eclipse是首选的官方IDE。我个人使用IntelliJ IDEA,但这并不是真的相关......我们最近从SVN切换到Git。
我正在与一个项目合作的我的一个同事至少有三次现在设法在合并然后推送到原点时意外地改变了整个存储库中的所有行结尾。我无法弄清楚他是如何做到这一点的,但这显然与他解决合并冲突的过程有关。我们都使用Windows,而我们推送的存储库是在Linux机器上。
我们都安装了来自https://git-scm.com/download/win的git,并选择了默认选项(afaik,正确处理行结尾)......但是,Eclipse中可能会以某种方式做某些不同的事情吗?
答案 0 :(得分:1)
您要做的是创建一个' .gitattributes'文件存储库的根目录。此文件对于您的存储库是唯一的,并且将覆盖任何其他协作者.gitconfig设置,如果它们具有core.autocrlf或core.eol设置。
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text
# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
以上是来自here.的.gitattributes文件示例。当然,这必须根据您的需要进行配置。
以下是更新存储库的步骤,也取自here.
git add . -u
git commit -m "Saving files before refreshing line endings"
rm .git/index
git reset
git add -u
git add .gitattributes
git commit -m "Normalize all the line endings"