然而,仓库的
.gitattribute
包含:# Set default behaviour, in case users don't have core.autocrlf set.
* text=auto
根据 GitHub 文章 处理行尾,应该显式使
core.autocrlf
的值为 true。然而,~/.gitconfig
中也包含 autocrlf = true
。如果试图将修改的文件“还原”到以前的提交,则不会有任何效果。相同的文件仍被视为未提交。
这个代码库已经克隆到多个位置,并确保没有文件位于相同的路径下,以确保 SourceTree 或 git 不会记住旧文件。
这个代码库与 Windows、Linux 和 OSX 相协作。这个问题只出现在 OSX 上。
SourceTree/仓库/git 设置中可能仍存在什么问题?
更新 #1,2013年4月20日
由于仍然存在问题,这里提供了git config --list
的部分输出。
来自SourceTree控制台(OSX)
core.excludesfile=/Users/User/.gitignore_global
core.autocrlf=input
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.autocrlf=true
这是来自Windows端的相应输出:
core.symlinks=false
core.autocrlf=false
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
http.proxy=
core.autocrlf=true
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
core.eol=native
core.autocrlf=true
需要为相关存储库提供完整的.gitattributes
# Set default behaviour, in case users don't have core.autocrlf set.
* text=auto
*.php text
*.twig text
*.js text
*.html text diff=html
*.css text
*.xml text
*.txt text
*.sh text eol=lf
console text
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.xslx binary
autocrlf
,你说它在 ~/.gitconfig 中设置,但如果它在你的仓库的 .gitconfig 中设置,那么它将覆盖全局配置。你尝试过在你的仓库 .gitconfig 中将autocrlf
设置为 true 吗? - Kieran Seniorautocrlf
- 即使在同一台计算机上也完全不同。所以,我认为我们必须尝试将所有可能的autocrlf
设置为true
。但是 - 我认为.gitattribute
在这里也应该起作用,不是吗?在第一行中,我们有* text=auto
... - Ville Mattilatext=auto
应该按照git文档中所述自动转换您的行尾。例如,如果您删除了该选项并再次检出存储库,则不应列出大量已修改的文件。 - Kieran Senior