Git 在原始回购接受拉取请求后,有没有办法在fork中挤压提交?

Git 在原始回购接受拉取请求后,有没有办法在fork中挤压提交?,git,pull-request,git-fork,Git,Pull Request,Git Fork,我有一个存储库分支,在那里我正在编写我的部分代码。我犯了一个相当大的错误,将代码段(通常是大约50-100行sql代码)写入到fork的主分支中(虽然当时我没有意识到),然后将请求fork的主分支拉入原始的主分支中 原始回购中的设置只允许挤压和合并提交。所以现在我的情况是,每一个pull请求都有60次提交,1个文件发生了更改(实际是我处理的) 是否有一种方法可以以某种方式同步原始回购和fork的状态,以从主分支中删除所有不必要的提交?Quick Answer 首先,使用fork中的获取原始状态的

我有一个存储库分支,在那里我正在编写我的部分代码。我犯了一个相当大的错误,将代码段(通常是大约50-100行sql代码)写入到fork的主分支中(虽然当时我没有意识到),然后将请求fork的主分支拉入原始的主分支中

原始回购中的设置只允许挤压和合并提交。所以现在我的情况是,每一个pull请求都有60次提交,1个文件发生了更改(实际是我处理的)


是否有一种方法可以以某种方式同步原始回购和fork的状态,以从主分支中删除所有不必要的提交?

Quick Answer

首先,使用
fork
中的
获取
原始
状态的信息(原始回购)

然后,您将能够比较它们的状态并决定您想要做什么

您将能够重写您的
分叉的历史记录
以匹配
原点

要更改
原点
以匹配您的
分叉
,将更加困难,不过:

  • 您需要在
    origin
    上推送权限以重写历史记录
  • 如果你没有,你需要和能帮你的人协调
  • 由于
    origin
    由其他人共享,因此需要通知他们,因为这可能会中断他们正在处理的事情
有关哪些操作可以帮助您实现这一目标的更详细答案,您需要提供有关
原点
和您的
分叉
的当前状态的更多详细信息,以及您打算为它们设置的状态。此命令可能有助于:

git log --graph --oneline --decorate

快速回答

首先,使用
fork
中的
获取
原始
状态的信息(原始回购)

然后,您将能够比较它们的状态并决定您想要做什么

您将能够重写您的
分叉的历史记录
以匹配
原点

要更改
原点
以匹配您的
分叉
,将更加困难,不过:

  • 您需要在
    origin
    上推送权限以重写历史记录
  • 如果你没有,你需要和能帮你的人协调
  • 由于
    origin
    由其他人共享,因此需要通知他们,因为这可能会中断他们正在处理的事情
有关哪些操作可以帮助您实现这一目标的更详细答案,您需要提供有关
原点
和您的
分叉
的当前状态的更多详细信息,以及您打算为它们设置的状态。此命令可能有助于:

git log --graph --oneline --decorate

经过一些研究,我设法找到了可行的解决方案:

  • 在第一次提交之前查找提交哈希
  • git重置——硬
  • git-push-f源主机
  • git向上拉主控器
  • git推送源主机

我的叉子(起源于此)与上游同步。

经过一些研究,我设法找到了可行的解决方案:

  • 在第一次提交之前查找提交哈希
  • git重置——硬
  • git-push-f源主机
  • git向上拉主控器
  • git推送源主机

我的fork(这里的原点)与上游同步。

您正在寻找
重新基址
您正在寻找
重新基址
“您的第一次提交”是指fork的第一次提交还是自fork的最新PR以来最新工作的第一次提交?我解决此问题已经有一段时间了,但是如果我“我没弄错,这是fork的第一次提交”你是指fork的第一次提交还是自fork的最新PR以来最新作品的第一次提交?我解决这个问题已经有一段时间了,但如果我没弄错的话,这是fork的第一次提交