- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么办法可以暂时覆盖git中的属性,类似于-c
可以用来覆盖配置选项吗?
我想调用git diff
带有特定的自定义textconv
命令与我通常使用的命令不同。
为了更具体:我的实际用例是在 vim 中使用 jupytext.vim
plugin 编辑 Jupyter 笔记本。 .
我的正常~/.gitconfig
包含
[diff "jupyternotebook"]
command = git-nbdiffdriver diff
nbdime
作为差异驱动程序,然后在
~/.gitattributes
:
*.ipynb diff=jupyternotebook
[diff "jupytext"]
textconv = jupytext --from=ipynb --to=md -o - <
git diff
表现得好像
*.ipynb diff=jupytext
[diff "jupytext"]
部分永久到我的
~/.gitconfig
.但是,根据传递给
git diff
的命令行选项,使用“jupytext”驱动程序而不是默认的“jupyternotebook”必须是临时的。 .
git diff
的命令行选项。这迫使它使用不同的
~/.gitattributes
优先于所有其他
.gitattributes
的文件文件(例如在同一目录中)。
g:gitgutter_diff_args
vim-gitgutter
的设置.我想强制插件转换 *.ipynb 文件的方式与我通常希望使用
nbdime
转换它们的方式不同。 .
最佳答案
我有一个类似的情况,我想切换 textconv
每次运行时打开和关闭过滤器,而不是按文件扩展名。 (我希望有时能够检查是否有任何变化,而不仅仅是从一个值到另一个值的数字变化。)我发现的技巧是创建一个“默认”案例,它总是使用,使用 cat
对于 textconv,然后我可以用 -c 重新分配。
在我的 ~/.config/git/attributes
我有:
* diff=default
在我的
~/.gitconfig
我有:
[diff "default"]
textconv = cat
[diff "cat"]
textconv = cat
[diff "nonums"]
textconv = "f(){ gsed -E 's/[0-9]+/##/g' \"$1\" ; }; f"
除了这个别名,让我在需要时通过调用
git diff-nonums
临时覆盖默认大小写。 . (别名允许
git diff
允许的任何参数。)
[alias]
diff-nonums = !git -c diff.default.textconv=\"`git config diff.nonums.textconv`\" diff
对于您的情况,我认为您应该使用 difftool,而不是 diff 的
command
配置,切换实际命令。
The nbdime docs表明他们提供了一个脚本来编写所需的配置(
git-nbdifftool config --enable [--global]
,然后可以使用
git difftool --tool=nbdime
)完成此操作后,我相信您可以设置 default+alias 技巧来切换工具和 textconv 来完成您需要的操作对于 nbdiff 或 jupytext。
man gitattributes
,后面几段,了解可以保存属性文件的位置。注意,我不清楚
command
、
external
和
difftool
之间的区别。例如,我没有刚才找不到简单的方法来获取外部或命令来使用 git 本身。)
man gitconfig
中的部分被称为“选择 textconv 与外部差异”。链接的问题建议使用临时文件的解决方法。
关于git - 从命令行覆盖 .gitattributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54068308/
在 gitattributes 中,您可以指定应将特定文件类型视为二进制文件,例如 *.myExt binary 来自: http://git-scm.com/docs/gitattributes 这
在 gitattributes 中,您可以指定应将特定文件类型视为二进制文件,例如 *.myExt binary 来自: http://git-scm.com/docs/gitattributes 这
我刚刚创建了一个新的 Laravel 项目,我正在设置我的 .gitattributes语言属性。问题是,我不确定要为哪些文件/目录设置哪些。 默认.gitattributes文件如下所示: * te
有什么办法可以暂时覆盖git中的属性,类似于-c可以用来覆盖配置选项吗? 我想调用git diff带有特定的自定义textconv命令与我通常使用的命令不同。 为了更具体:我的实际用例是在 vim 中
我们正在开发一个项目,几个人拥有 Mac,而我在 Windows 上运行。我们在换行方面遇到了一些问题。 我在 GitHub 上读到我可以添加以下内容: # Set default behaviour
我在我的 git 安装 (CentOS) 的根目录中创建了一个 .gitattributes 文件。我已经通过 samba 共享连接在 PHPStorm 中创建了测试文件,并将行结尾专门设置为 CRL
有时人们会创建包含已知扩展名列表的 .gitattributes 文件,然后手动将它们声明为 text 或 binary: *.ts text *.js text *.json text *.csv
我正在尝试在 .gitattributes 中处理没有扩展名的文件: * text=auto *. eol=lf .py eol=lf *. 显然没有帮助。 git check-attr --all
我们已经为我们的项目存储库创建了一个文本和二进制文件类型的列表,但我担心某些类型可能已经从该分类中消失,或者将来有人可能会添加一个新的文件类型而忘记了将其添加到 .gitattribute 文件中。
我正在为使用 smudge/clean filters 的 git 编写一些工具,因此我必须在 .gitattributes 文件中创建条目。 不幸的是,该文件的解析相当简单,只是按空格拆分,因此在我
我的 git 存储库中有许多模板文件,它们以不同的速率变化。这些然后用于生成 HTML 页面。如果有人报告问题,我希望他们能够告诉我哪个版本的模板文件有问题。目前,我在更改文件时手动将日期输入到文件中
我想在合并请求期间利用 gitlab 图像差异。但是,我得到的不是渲染图像或差异,而是: 一条消息说:This diff was suppressed by a .gitattributes entr
我刚刚开始熟悉 git 的使用。我一直在使用 https://github.com/Danimoth/gitattributes 中的示例为我的各种项目(主要是 bash 和 python 脚本)整理
因此,我最近在我们的一个存储库中添加了一个 .gitattributes 文件,以尝试强制使用一致的行结尾: # All Perl Sources should use Unix style li
例如,lg2s 的 .gitattributes 文件有 *.cs diff=csharp 行。代码的输出 using (var repo = new Repository(@"path\to\lg2
是否有任何具体示例,可以通过 Linguist 属性检测 GitHub 中的错误语言? 来源:https://github.com/github/linguist 语言学家文档 语言学家的语言 语言学
我已阅读 documentation on .gitattributes和 searched Stack Overflow对于这个问题的简单答案,但到目前为止还没有找到。我有一个像这样有空格的文件。
我读过 Git documentation ,它表明我可以明确地将某些文件设置为文本,因此它们的行尾会自动更改或作为二进制文件以确保它们不变。 但是,我也读到 Git 非常擅长检测二进制文件,这让我觉
我想设置 git 以将所有 LF 结尾更改为 CRLF。 我在我的存储库的根文件夹中创建了一个 .gitattributes 文件: * text=auto # Have git change eve
我正在使用 Visual Studio 2010 和 git (git svn)。我的同事使用带有 Ankhsvn 插件的纯 svn。 当我尝试在启用 Git 源代码管理提供程序的情况下打开文件时,V
我是一名优秀的程序员,十分优秀!