即使在推送之后,也要在git中注销以前的一系列提交

即使在推送之后,也要在git中注销以前的一系列提交,git,Git,如何在保留所有其他信息的同时执行推送之后,在git中从头开始的一系列以前的提交上注销?您可以通过重写分支来实现这一点。但是,您需要限制更改: git filter-branch --msg-filter 'cat - && echo && echo "Signed-off-by: Author <author@domain>" "$@";' HEAD~5..HEAD git过滤器分支--msg过滤器“cat-&&echo&&echo”签字人:作者“$

如何在保留所有其他信息的同时执行推送之后,在git中从
头开始的一系列以前的提交上注销?

您可以通过重写分支来实现这一点。但是,您需要限制更改:

git filter-branch --msg-filter 'cat - && echo && echo "Signed-off-by: Author <author@domain>" "$@";' HEAD~5..HEAD
git过滤器分支--msg过滤器“cat-&&echo&&echo”签字人:作者“$@”头~5.头
  • --msg filter
    更改提交消息。它将命令作为参数
  • $@
    是提交“对象”
  • HEAD~5..HEAD
    是要更改的提交范围
  • 因为您正在更改历史记录,并且已经推送到服务器,所以您很可能需要
    git push-f
    远程更新更改。

    您可以通过重写分支来实现这一点。但是,您需要限制更改:

    git filter-branch --msg-filter 'cat - && echo && echo "Signed-off-by: Author <author@domain>" "$@";' HEAD~5..HEAD
    
    git过滤器分支--msg过滤器“cat-&&echo&&echo”签字人:作者“$@”头~5.头
    
  • --msg filter
    更改提交消息。它将命令作为参数
  • $@
    是提交“对象”
  • HEAD~5..HEAD
    是要更改的提交范围

  • 因为您正在更改历史记录,并且已经推送到服务器,所以您很可能需要
    git push-f
    远程更新这些更改。

    您能解释一下您的答案吗。
    filter branch
    是如何做到这一点的?@bryankennedy怎么样?很好!我认为这确实有助于解释您在这里所做的事情。它看起来像是
    git
    现在打印:```警告:git filter branch有过多的gotcha生成了损坏的历史重写。在继续中止之前点击Ctrl-C,然后改用另一种过滤工具,如“git filter repo”()。更多详细信息,请参见过滤器分支手册页面;要消除此警告,请将过滤器\分支\消除\警告设置为1```如果您希望新添加的行不包含额外的换行符,例如当提交已经有其他签准标记时,请省去第一个
    echo
    ,以避免换行符。您能再解释一下您的答案吗。
    filter branch
    是如何做到这一点的?@bryankennedy怎么样?很好!我认为这确实有助于解释您在这里所做的事情。它看起来像是
    git
    现在打印:```警告:git filter branch有过多的gotcha生成了损坏的历史重写。在继续中止之前点击Ctrl-C,然后改用另一种过滤工具,如“git filter repo”()。更多详细信息,请参见过滤器分支手册页面;要消除此警告,请将过滤器\分支\消除\警告设置为1```如果希望新添加的行不包含额外的换行符,例如当提交已经有其他签准标记时,请省略第一个
    echo
    ,以避免换行符。