情况
我把htm文件放到git中.然后我使用git diff来比较它们.我不感兴趣的文件之间存在差异,例如meta或comments标签.
我通常使用这种方法:如何告诉git忽略单独的行,即特定行代码的gitignore
我到目前为止做了什么
以下是我采取的步骤:
<project root>/.gitattributes*.htm filter=gitignore,即在所有.htm文件上运行过滤器gitignore $ git config --global filter.gitignore.clean "sed 's/<meta.*>//g'",即删除这些行 $ git config --global filter.gitignore.smudge cat,即从repo中提取文件时什么也不做git diff A..B -- file.htm > diff.txt根据我目前所在的分支,我会得到不同的结果:
问题
我怎样才能做到这一点,无论我在哪个分支上,所有分支都应用过滤器?
我欣然承认,我可能用错误的名称来指代它,或者想要一些我不应该需要的东西。我只是想把它变成一件事:将对象属性链接在一起,这样如果我改变一个,我就会改变另一个。总是。直到我故意断开它们的连接。
那么让我们直接来看一个例子:
class Example:
def __init__(self):
self.name = ["Thing1"]
a = Example()
b = Example()
c = Example()
a.name = b.name
b.name.append("Thing2")
b.name.remove("Thing1")
Run Code Online (Sandbox Code Playgroud)
因此,现在a.name和b.name已连接,因此它们都是同一个可变变量的名称,现在读取为["Thing2"]. 此外,c.name是一个不同值的名称["Thing1"]。
我现在已经完成了我想要做的事情:a.name并且b.name是相互关联的。但这是非常笨拙的。
我可以创建一个自定义列表类并创建一些方法来切换列表中的事物并在调用时返回一个不可变的,这样它看起来更像一个普通的不可变的。但这一切似乎都是黑客攻击。
关于使这个更清洁的任何想法?还是我只是想要一件坏事?