git - 为什么源代码树不是 Git Diff 一个 Powershell 脚本 (ps1)

标签 git powershell atlassian-sourcetree

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

enter image description here

是否需要切换设置以获得正确的行为?如果我将文件重命名为 .txt,则 diff 会按预期工作。

我的存储库中有一个 .gitattributes 文件,我已经更新它以明确说明 .ps1 文件,但这似乎也不起作用:

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

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

enter image description here

最佳答案

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

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

关于git - 为什么源代码树不是 Git Diff 一个 Powershell 脚本 (ps1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36190272/

相关文章:

windows - 确保将 IIS AppPool 用户添加到 windows 组

c++ - Git、SourceTree、VisualStudio 和损坏的 .cpp 文件

Github:需要代码审查

git - 如何获取 TeamCity Build 触发器过滤器以构建功能分支而不是默认分支

html - 从 html 网络抓取中提取字符串

powershell - 使用循环创建对象的正确性

git - 您如何组织多个 git 存储库,以便将它们全部备份在一起?

visual-studio-2010 - 从程序包管理器控制台使用 poshgit 时出错

git - Git 软件(例如 Gitbox、Github、SourceTree)可以使用远程仓库而不是本地仓库吗?

git - 无法存储在 SourceTree 中