为了结帐/差异/阶段等目的,我想完全忽略一些行:
set(ROOT /path/to/something/name_suffix)
set(ROOT /path/to/something/othername_suffix)
Run Code Online (Sandbox Code Playgroud)
偶尔(但并非总是)我会把它作为
set(ROOT /some/other/private/path/name)
set(ROOT /some/other/private/path/othername)
Run Code Online (Sandbox Code Playgroud)
忽略的意思是:
我拥有的:
Git 过滤器会弄脏我的私人路径 - 问题是如果我有原始行,在签出时它将恢复到我更改的行(带有个人路径):
smudge = "sed 's#set\\(ROOT\\) .*/\\([a-z]*\\).*)#\\1 /some/other/private/path/\\2)#'"
Run Code Online (Sandbox Code Playgroud)
我还没有实现 git clean ,因为我目前看到的唯一方法是硬编码原始后缀的脚本或分析git diff以查看最初提交的内容的脚本(问题是_suffix,我不知道工作树中的内容。原始路径可以硬编码,不会改变),并将其替换为索引的内容。我不希望我的私人路径包含_suffix目录。
这里有两件事:
您的涂抹脚本应将捕获的组保存在同名的文件中,并带有.smudge扩展名(例如)和.gitignore包含内容*.smudge.
这样,您的 clean 过滤器脚本就可以从 xxx.smudge 中读取原始值,并通过反向操作将文件恢复为其原始内容sed。
您可以使用 将文件名传递给脚本%f。(看.gitattributes#filters)
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |