假设我有一个提交,我想删除它,它的所有子节点以及引用它的任何分支和标记。
我该怎么办?
实际上,只有参考文献需要删除,之后
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now
可以运行。
答案 0 :(得分:1)
你想要做什么基本上是一个rebase 请记住,如果需要将更改推送到服务器,则所有远程分支都需要
找出哪些分支具有所需的提交:
# get the list of all the branches with the given commit
git branch --contains <commit>
# get the list of tags with this commit
git tag --contains <commit>
循环遍历这些分支并将其重置为先前的提交
for ref in $(git branch --contains <sha1>); do ... ; done;