我试图db/irrelevant.php从Git diff中排除一个文件().我试图把在一个文件db名为的子目录.gitattributes与行irrelevant.php -diff
,我也尝试创建一个名为.git/info/attributes包含db/irrelevant.php.
在所有情况下,该db/irrelevant.php文件都作为Git二进制补丁包含在diff中.我想要的是diff命令忽略对该文件的更改.我究竟做错了什么?
我经常这样做:
git init
git add .
git commit .
Run Code Online (Sandbox Code Playgroud)
然后我意识到它将要添加我的nbproject目录,我希望将其排除/忽略.有时候,我甚至会检查这个目录.如果我在运行git add之前将它添加到.git/info/exclude中,一切正常(它被排除在外).
那么我修改.git/info/exclude然后就太晚了.git不再尊重.git/info/exclude的更改.
所以问题是:
我已经阅读了Git Pro网站,并且我已经在StackOverflow上阅读了多个答案,但遗憾的是我无法让.gitattributes为我工作.
每当我使用时git difftool,它都会尝试显示二进制文件之间的差异,例如图像文件(PNG).
我在.gitattributes文件中尝试了各种组合,但每当我运行git difftool命令时,它仍然会尝试比较二进制文件.
在我的存储库文件夹中,我有:
.git
.gitattributes
[我的项目的文件子目录]
我为.gitattributes文件尝试了很多过滤器组合.例如:
*.pbxproj binary
*.png二进制文件
或者:
*.pbxproj binary -diff
*.png binary -diff
甚至:
*.pbxproj binary
*.png binary
*.pbxproj -diff -difftool
*.png -diff -difftool
每次,我只需将我的.gitattributes文件添加到索引并提交它.但是,在这样做之后,当我运行我git difftool来检查两个分支之间的差异时,会发生这种情况:
git difftool otherBranch HEAD
查看:'MyApp.xcodeproj/project.pbxproj'点击返回启动'diffmerge':
查看:'MyApp/Background1.png'点击返回启动'diffmerge':
它是怎么做到的?我怎么能最终正确设置我的.gitattributes文件,所以我不必查看这些特定文件的差异?
为了进一步调查,我使用了git check-attr如下命令:
git check-attr binary MyApp/MainBackground.png
输出是MyApp/MainBackground.png: binary: set......我想知道为什么git difftool仍然迫使我查看差异!