我希望我的git忽略添加到仓库中的vim-foldmarker({{{,}}})。 我知道git具有--ignore-whitespace选项,但是, 有没有办法告诉git忽略特定的单词或字符串? 当然,我希望git跟踪不是“ {{{”或“}}}”
的差异如果克隆的原始代码是
def foo(bar):
# do someting
return "buz"
我的编辑方式
def foo(bar): # {{{ <- this tells vim to fold from here
# do something
return "baz" # }}} to here
我希望git diff像这样
- # do someting
+ # do something
- return "buz"
* return "baz"
不是这样
-def foo(bar):
+def foo(bar): # {{{ <- this tells vim to fold from here
- return "buz"
* return "baz" # }}} to here
答案 0 :(得分:1)
Git不允许您使用.gitignore
文件来忽略文件的一部分。您可以忽略整个事情,也可以根本不忽略它。
但是,有一种方法可以做您想要的事情,这是一个diff过滤器。如果编辑.git/info/attributes
文件(如果文件不存在,则创建该文件),可以输入一行*.py diff=vim
,这将使所有Python文件都使用“ vim”差异过滤器。如果您是项目中的唯一人员,也可以在.gitattributes
中编写此代码,也可以在任何其他有效的gitattributes文件中编写此代码(有关详细信息,请参见手册页)。
完成此操作后,您可以在.git/config
文件或个人.gitconfig
文件中指定差异过滤器。指定如何修改文件以呈现差异。例如,您可以编写如下内容:
[diff "vim"]
textconv = "sed -e 's/ # {{{.*$//' -e 's/ # }}}.*$//'"
这将使sed
修改所有差异,以去除空格,注释和折叠标记。您可以对文件执行任意转换,以根据需要修改它们以进行差异输出。