首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在git中,如何以编程方式删除/删除历史(重基)中的特定提交?

在git中,如何以编程方式删除/删除历史(重基)中的特定提交?
EN

Stack Overflow用户
提问于 2020-03-03 08:25:42
回答 1查看 75关注 0票数 1

我知道如何交互式地修改git历史记录和drop一个特定的提交,但是我没有找到一种完全自动地这样做的方法。

我想识别特定的提交(例如包含魔术字符串),并让脚本删除它们。

就像这样:

代码语言:javascript
运行
复制
# identify and remove all commits which would be merged to master but should not
for i in $(git --no-pager log --grep='no-push' --pretty=format:"%h" --no-merges HEAD ^master)
do
    echo "Drop commit $i"
    git rebase --drop $i   # <== this is what I want to do
done

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-03 08:41:31

摘自here (感谢jonrsharpe):

代码语言:javascript
运行
复制
# identify and remove all commits which would be merged to master but should not
for i in $(git --no-pager log --grep='no-push' --pretty=format:"%h" --no-merges HEAD ^master)
do
    echo "Drop commit $i"
    git rebase -p --onto $i^ $i
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60502935

复制
相关文章

相似问题

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