gpt4 book ai didi

git - 如何在最后一次 X 提交中添加的行中搜索和替换字符串?

转载 作者:太空狗 更新时间:2023-10-29 13:23:14 25 4
gpt4 key购买 nike

我做了 5 次提交,其中我引用了一些变量 FooObj。然后我意识到 FooObj 是错误的选择并创建了 BarObj。现在我想做一个提交,将字符串 FooObj 的所有实例替换为 BarObj 仅在这 5 个提交中添加的行

我无法对整个代码库进行搜索和替换,因为 FooObj 在许多地方仍然被正确使用;它必须针对这 5 个提交进行本地化。

我可以手动替换,但是有自动的方法吗?

最佳答案

您可以通过 git diff --name-only HEAD~5 获取最近 5 次提交的文件列表。然后,您可以将其通过管道传输到 sed 命令中,以用 xargs 替换您的变量名。

所以整个命令最终看起来是这样的:

git diff --name-only HEAD~5 | xargs sed -i 's/FooObj/BarObj/g'

这应该会为您更新正确的文件。验证更改是否正确,您可以像往常一样提交它们。

编辑

由于您只想在提交中更改行,因此该方法不会完全自动化,但您可以创建一个补丁来修复这些行并应用它,这应该会导致您想要的更改。

http://www.thegeekstuff.com/2014/03/git-patch-create-and-apply/

您将创建一个补丁文件并通过以下方式应用它:

git diff HEAD~5 HEAD >> BarObjPatch.diff
//Edit the patch file to correct the changes.
//As noted in the comments, be careful as this will modify context lines
sed -i 's/FooObj/BarObj/g' BarObjPatch.diff //Can also edit file manually
git apply BarObjPatch.diff

这应该会导致您想要的更改。

关于git - 如何在最后一次 X 提交中添加的行中搜索和替换字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28697799/

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