首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git-rebase:使大PR堆栈中的恶名消失。

git-rebase:使大PR堆栈中的恶名消失。
EN

Stack Overflow用户
提问于 2022-10-07 00:19:38
回答 1查看 9关注 0票数 0

我有一个名为AccountNode的JSX组件,无意中创建了一个名为AccountNode的TS接口,但两者是不同的。一个用于表中的一行(ui),另一个用于树(节点)中的数据段。

我怎样才能使"AccountNode“这个名字在历史上不出现?

EN

回答 1

Stack Overflow用户

发布于 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)

  • Add
  1. ag (brew install the_silver_searcher) (grep/ack )这个git difflastcommitadded别名:

代码语言:javascript
复制
git config --global --edit
brew install the_silver_searcher

粘贴:

代码语言:javascript
复制
[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 '^\\+'

或者,如果希望完全取消回购中的文件夹中的变量名,请继续阅读这个不太灵活的示例:

代码语言:javascript
复制
git rebase --exec 'ag -0 -l AccountNode ui/app && git redo || echo "ok"' -i 315abbd5b

这将重新定位,但只要在ui/app文件夹中引入AccountNode的提交就停止,撤消提交,并将这些更改弹出到您的工作目录中,这样您就可以在ide中修复这些更改。

一旦修复了AccountNode实例,就可以使用以下脚本进行良好的安全检查:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73981158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档