如何永久阻止文件的特定部分从Git中犯下?(How to permanently prevent s

2019-06-25 14:55发布

我已经克隆与混帐SVN远程SVN仓库。 我已经在代码编译的方式修饰在这个克隆回购一个pom.xml文件。 这种设置是唯一适合我。 因此,我并不想推又变回上的远程回购。

是否有办法防止这种情况(部分)的文件被提交到回购的变化? 我知道的事实,我可以使用个人分支,但是这将意味着某些合并开销。 是否有其他方法吗?

我已经研究过这个问题 ,这一个 ,但它们对于相当时间的变化。

更新:我也知道的的.gitignore可能性,但是这将意味着完全排除的文件。

Answer 1:

编辑:你问什么是不可能的,我没有看到“局部”的一部分。 我知道你可以提交文件的一部分,但是你不能忽略文件的某些部分。 您将需要使用更新指标伎俩,以避免它,在“状态”,你将需要藏匿该文件从远程每次都会变基时间/合并,然后unstash您的修改,而忽略与最新情况:您的修改指数。 我不知道你是否能为git的命令序列创建一个Git别名,这样在使用一个命令,你可以做所有这些3组的命令,以避免麻烦

使用的.gitignore文件,不要把它推到远程回购太: 忽略的.gitignore文件本身

在你的.gitignore,你应该有

 .gitignore
 path/to/pom.xml

.gitignore文件以可在工作树的根,或以任何子目录你想/需要



Answer 2:

有可能是与过滤器成为了可能。 但是,这需要探索更多。

起点:实现污迹/清洁此过滤器:

git config --global filter.versionUpdate.smudge 'sed "s/<version>14.5.0<\/version>/<version>14.5.FEATURE-15<\/version>/"'
git config --global filter.versionUpdate.clean 'sed "s/<version>FEATURE-15<\/version>/<version>14.5.0<\/version>/"'

通过这种方式,进行比较时,由于应用过滤器的文件始终是相同的。

问题:它仍然需要如何找到已过滤的文件后面的调查。 这是不是在工作目录中那么明显。



文章来源: How to permanently prevent specific part of a file from being committed in git?