gpt4 book ai didi

bash - 如何忽略/恢复文件内容中大小写的更改?

转载 作者:行者123 更新时间:2023-12-03 18:33:51 25 4
gpt4 key购买 nike

我正在对 Microsoft Access VBA 代码进行版本控制,该代码通常不区分大小写。然而,变量名的情况在那时(由访问编译器或由开发人员)时常发生。这通常会导致我的 git 工作区发生巨大变化。
如何还原或忽略仅涉及文件内容大写或小写的更改?
一个例子:

git init
echo "public sub example()\nend sub" > mdlExample.ACM
# ^-- lower e
git add --all
git commit --all --message "Initial Commit"
echo "public sub Example()\nend sub" > mdlExample.ACM
# ^-- upper E
我会喜欢这样的东西:
git restore --only-case-changes # not working
进而:
git status
> On branch master
> nothing to commit, working tree clean

最佳答案

考虑更换 example="example"Example="Example" .您如何建议 Git 决定在此处忽略哪个案例更改?现在考虑注释中的代码片段,或存储为代码生成器的字符串。我开始希望 Git 摆脱烦人的琐事,但我认为如果你试着想象一下告诉 Git 你想要什么,你会更好地理解你的问题的上下文。

How can I revert or ignore changes, that only concern upper- or lowercase of file contents


当您想暂时忽略更改时,当您想在没有看到这些更改的情况下进行差异或 blame 时,您可以使用“textconv”过滤器来规范化您差异的文本。我使用这些来做一些事情,比如在差异时从生成的 html 中去除嵌入的时间戳,最快的 atm 是
[diff "doc-html"]
textconv = "sed 's,<span class=\"version\">Factorio [0-9.]*</span>,,;s,<[^/>][^>]*>,\\n&,g'"
wordRegex = "<[^>]*\\>|[^< \\t\\n]*"
.git/config , 和
doc-html/*.html diff=doc-html
*.cfg -diff
.git/info/attributes .
所以我改变了什么差异不会向我展示我不关心的东西。
如果您想查看差异忽略大小写的结果,请尝试
[diff "nocase"]
textconv="tr A-Z a-z"
并放下 * diff=nocase (或者可能是 *.vba diff=nocase )到 .git/info/attributes .完成后,将其取出。
但是对于 merge ,我的引导示例应该让您相信 Git 自动且静默地在 repo 内容中进行大小写更改,即使只是在看起来像标识符的文本中,也是一个坏主意。当出现冲突时,不仅仅是片面的变化,而是两种不同的变化,仍然需要一些人为判断来决定结果应该是什么。幸运的是,使用任何不错的 merge 工具,解决简单的冲突都在亚秒范围内。

关于bash - 如何忽略/恢复文件内容中大小写的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63067288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com