我有一个名为AccountNode的JSX组件,无意中创建了一个名为AccountNode的TS接口,但两者是不同的。一个用于表中的一行(ui),另一个用于树(节点)中的数据段。
我怎样才能使"AccountNode“这个名字在历史上不出现?
发布于 2022-10-07 00:19:38
例如,我不想对字符串"load_more"进行硬编码,所以我要重做/修改这些提交:
git rebase --exec 'git difflastcommitadded | ag load_more && { echo "found load_more"; git redo; } || echo "ok"' --no-reschedule-failed-exec -i 315abbd5b
设置:
alternative)
ag (brew install the_silver_searcher) (grep/ack )这个git difflastcommitadded别名:git config --global --edit
brew install the_silver_searcher粘贴:
[alias]
# From: https://stackoverflow.com/questions/73981158/git-rebase-make-bad-name-in-large-pr-stack-disappear/73981159#73981159
difflastcommitadded = !git diff HEAD^..HEAD --no-ext-diff --unified=0 --exit-code -a --no-prefix | egrep '^\\+'或者,如果希望完全取消回购中的文件夹中的变量名,请继续阅读这个不太灵活的示例:
git rebase --exec 'ag -0 -l AccountNode ui/app && git redo || echo "ok"' -i 315abbd5b这将重新定位,但只要在ui/app文件夹中引入AccountNode的提交就停止,撤消提交,并将这些更改弹出到您的工作目录中,这样您就可以在ide中修复这些更改。
一旦修复了AccountNode实例,就可以使用以下脚本进行良好的安全检查:
ag -0 -l AccountNode ui/app/pages/AccountManagement2 && echo "still contains AccountNode" || {
yarn --cwd ui run jest -i && git add . && git commit && git rebase --continue
}在我的例子中,git commit运行prettier+eslint,但不运行测试(这些测试现在运行在ci中)
这取决于这里提到的git redo别名:git rebase - pop each commit into working dir to easily edit, re-use commit msg
https://stackoverflow.com/questions/73981158
复制相似问题