为什么Source Tree不是Git Diff的Powershell脚本(ps1)

时间:2016-03-23 22:55:11

标签: git powershell atlassian-sourcetree

我在Windows上使用SourceTree作为我的git客户端(v1.8.3.0)。出于某种原因,它没有显示我的PowerShell脚本diff.ps1),而是将其显示为二进制文件:

enter image description here

我需要切换设置以获得正确的行为吗?如果我将文件重命名为.txt而不是diff按预期方式工作。

我的回购邮件中有一个.gitattributes文件,我已将其更新为明确说明.ps1个文件,但这似乎无效:

*.ps1   diff=astextplain
*.PS1   diff=astextplain

或者,我可以看到diff就好了我转到External Diff(通过BeyondCompare),但是,这并不能帮助我根据特定的行号进行提交:

enter image description here

2 个答案:

答案 0 :(得分:3)

看起来这是Atlassian产品(BitBucket,SourceTree)的一个已知问题:https://bitbucket.org/site/master/issues/5453/powershell-module-manifest-file-psd1-are

问题是我的.ps1文件保存为UTF16 Unicode。将其更改为UTF8ascii会修复此问题,我会再次在SourceTree中获取diff

答案 1 :(得分:1)

您可以(仅最近的git!)

*.ps1 text working-tree-encoding=UTF-16LE eol=CRLF

(如果带bom等,则删除LE)

这进入您的gitattributes文件