git ignore 某行

Posted seamanj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git ignore 某行相关的知识,希望对你有一定的参考价值。

在项目开发中, 有些配置文件中的配置是因为机器会不一样的, 比较配置文件中的IP地址或数据库地址, 这时我们希望每个项目保持这些配置而不相互覆盖.

这里我们希望在*.ini文件中所有以//#gitignore结尾的行保持不变

首先我们在项目中建立一个.gitattributes文件, 里面写上*.ini filter=lineignore

这句的意思在所有*.ini加上一个过滤器, 过滤器的名字叫lineignore

然后我们建立一个.gitconfig文件, 里面写上

git config --global filter.lineignore.clean "sed '/\\/\\/#gitignore$/d'"
git config --global filter.lineignore.smudge cat

第一句的意思在提交前上做sed的删除操作d, 删除的条件是//#gitignore结尾. 这一来删除过后就不会提交了

忘了sed命令的, 可以去https://www.runoob.com/linux/linux-comm-sed.html补下

第二句的意思在拉取后做cat操作, 基本上就是空操作. (注意在其他场景可能会用到sed的替换功能, 具体请参考https://yaowenjie.github.io/%E7%BC%96%E7%A8%8B%E7%9B%B8%E5%85%B3/gitignore-specific-line)

这样所有以//#gitignore结尾的行中所有的改动在stage后, 都会在提交前被删掉, 也就是不提交, 达到ignore的目的.

注意,如果在smartgit中改变以//#gitignore结尾的行stage后, 改变还在的话说明配置没有成功, 尝试手动在命令行执行.gitconfig中的内容

参考链接:https://blog.csdn.net/Bekind2010/article/details/80024235

以上是关于git ignore 某行的主要内容,如果未能解决你的问题,请参考以下文章

git ignore文件

git 设置ignore文件

如何使 git diff --ignore-space-change 成为默认值

如果碰到git提示“ignored tracked with git”,那么使用以下命令解决

如何在 git-ignore 文件 android 中添加 gradle.properties? [复制]

git查找某行代码的提交记录