Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何挤压已推送到远程的特定提交?_Git - Fatal编程技术网

Git 如何挤压已推送到远程的特定提交?

Git 如何挤压已推送到远程的特定提交?,git,Git,我已在我的分支中进行了以下提交,并将其推送到远程 commit 5 commit 4 commit 3 commit 2 commit 1 我现在想挤压提交1、2和3,并删除提交4和5(不再需要更改) 如何才能做到这一点?一旦按下,您无法轻松更改历史记录而不影响其他用户,因此这成为一个通信问题 一种办法是: 在单独的分支中挤压并删除提交 将该分支推给其他人检查 当每个人都同意新的历史记录时,重命名分支(本地和远程) “” “” 要求所有人重置——将其分支硬设为新的源/分支 交互式重基。您

我已在我的分支中进行了以下提交,并将其推送到远程

commit 5
commit 4
commit 3
commit 2
commit 1
我现在想挤压提交1、2和3,并删除提交4和5(不再需要更改)
如何才能做到这一点?

一旦按下,您无法轻松更改历史记录而不影响其他用户,因此这成为一个通信问题

一种办法是:

  • 在单独的分支中挤压并删除提交
  • 将该分支推给其他人检查
  • 当每个人都同意新的历史记录时,重命名分支(本地和远程)
    • “”
    • “”
  • 要求所有人重置——将其
    分支
    硬设为新的
    源/分支

交互式重基。您需要强制推送,如果您与其他人共享您的分支,这可能不是您想要的,因为如果他们有您的旧提交的副本,这将导致同步问题。是的,我正在与其他人共享。还有其他选择吗?如果您不打算强制推送,那么您就不能真正挤压提交,尽管您仍然可以还原您不想要的任何更改。您与多少其他人共享您的分支?您可能应该接受提交1、2和3未被压缩,并使用
git revert
处理4和5。