在原始回购接受拉请求之后,是否有办法压缩fork中的提交?

时间:2019-04-19 15:28:58

标签: git pull-request git-fork

我有一个存储库的分支,我在其中编写代码部分。我在将代码片段(通常是〜50-100行的sql代码)写入fork的master分支时犯了一个错误(虽然当时我没有意识到),然后拉请求fork的master分支进入原产地的主分支。

原始回购中的设置仅允许我压缩和合并提交。所以现在我处于每个拉取请求都需要60次提交和1个文件更改(我实际工作过的情况)的情况。

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

2 个答案:

答案 0 :(得分:0)

快速解答

首先,在fetch中使用fork获取有关origin(原始存储库)状态的信息

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

您将能够重写fork的历史记录以匹配origin
不过,对origin进行更改以使其与fork相匹配会更加困难:

  • 您需要在origin上具有推送权限才能重写历史记录
  • 如果您没有它,则需要与可以为您完成任务的人协调
  • 由于origin与其他人共享,因此需要通知他们,因为这可能会打断他们正在处理的事情

要获取有关哪些操作可以帮助您实现此目标的更详细的答案,您需要提供有关originfork的当前状态以及您打算将其设置为何种状态的更多详细信息。此命令可能会帮助:

git log --graph --oneline --decorate

答案 1 :(得分:0)

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

  • 在第一次提交之前查找提交哈希
  • git reset --hard
  • git push -f原始主机
  • git pull上游主服务器
  • git push原始主机

我的叉子(在这里起源)与上游同步。