有没有一种方法可以“编写脚本”来提交git - 只接受某些差异?

5

我已经进行了一些静态代码分析,并将所有Java包级别字段转换为protected。这在大多数情况下是正确的,因为我忘记显式设置访问修饰符,而protected通常是我想要的。

不幸的是,我应用的重构是IntelliJ弱化访问修饰符,它还会更改很多构造函数等的public->protected。

因此,一旦我有了这样的语句差异:

-int myField;
+protected int myField;

并且

-public MyConstructor()
+protected MyConstructor()

有没有一种方法可以编写一个脚本,在提交时运行,只允许第一个示例,而不允许第二个示例?我可以想出脚本,只是不确定如何运行它 - 是预提交挂钩吗?

如果是预提交挂钩,如何在这样的脚本中检查差异并基于字符串进行接受/拒绝?

1个回答

2

是的,您可以使用涂抹/过滤器来实现。

有几种方法可以做到这一点。

Git钩子

Git钩子是在Git生命周期的不同阶段运行的脚本。
在适当的钩子文件中检查需要的文件/内容,并进行所需的任何操作。

该钩子将运行并检查您的文件语法。

涂抹/清理

基本上,smudge相当于每次检出任何内容时运行此代码
而clean相当于每次检入任何内容时运行此代码


图片来源于以下网址: https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接