gpt4 book ai didi

git - 在选择进行编辑的 git rebase 中以交互方式删除提交

转载 作者:行者123 更新时间:2023-12-01 23:36:04 25 4
gpt4 key购买 nike

我准备了一个要发布的 repo,并且需要从其历史记录中完全删除某些内部信息。这些数据可以在我必须手动检查/修剪的各种文件中。请注意,不应删除整个文件,只应删除某些内容。

当我这样做时 git rebase -i --root我可以标记所有提交 (a) 潜在 需要修改为 edit和那些 (b) 需要完全按照 drop . (注意:要审查的提交列表不会太长,并且是通过使用 git log --stat | grep 'commit\|name1\|name2\|...' 选择的。)在筛选类型 (a) 的提交时,我可能会发现实际上需要完全删除的提交。为此,我尝试了 rebase --skip但是,令我惊讶的是,这仍然保留了提交。

如何在 git rebase 期间删除提交我选择了 edit最初?

例子:

$ git init
$ for COM in A B C; do touch $COM; git add $COM; git commit -m "add $COM"; done
$ git rebase -i --root
<mark all as 'edit'>

<modify file and change commit>
$ echo A > A; git add A; git rebase --continue

<commit needs to go away>
$ git rebase --skip

<modify file and change commit>
$ echo C > C; git add C; git rebase --continue

文件 B在此之后仍然存在。

最佳答案

而不是 git rebase --skip , 用

git reset --hard HEAD^
git rebase --continue
git reset将删除提交。 git rebase --skip不会删除当时已经应用的提交。

关于git - 在选择进行编辑的 git rebase 中以交互方式删除提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60215482/

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