git 有没有一种方法可以在pull请求被接受到原始仓库后在fork中压缩提交?

enxuqcxy  于 2023-05-21  发布在  Git
关注(0)|答案(2)|浏览(108)

我有一个存储库的分支,我在那里写我的代码部分。我犯了一个很大的错误,写了一些代码(通常是一种~50-100行的SQL代码)到主分支的fork(虽然我当时没有意识到这一点),然后拉请求主分支的fork到主分支的起源。
原始仓库中的设置只允许我压缩和合并提交。所以现在我的情况是,每个pull请求就像60个提交和1个文件更改(实际上我工作过)。
有没有一种方法可以同步原始repo和fork的状态,从master分支中删除所有不必要的提交?

c9qzyr3d

c9qzyr3d1#

快速解答

首先,在fork中使用fetch来获取有关origin(原始存储库)状态的 * 信息 *
然后,您将能够比较它们的状态并决定您想要做什么。
您可以重写fork的历史记录以匹配origin
但是,更改origin以匹配您的fork将更加困难:

  • 您需要origin上的推送权限来重写历史记录
  • 如果你没有,你需要与能为你做的人协调
  • 由于origin在其他人之间共享,因此需要通知他们,因为这可能会中断他们正在处理的事情

要获得关于哪些操作可以帮助您实现这一点的更详细的答案,您需要提供有关origin和您的fork的当前状态的更多细节,以及您希望它们处于什么状态。此命令可能有助于:

git log --graph --oneline --decorate
gjmwrych

gjmwrych2#

经过一番研究,我找到了一个可行的解决方案:

  • 在第一次提交之前查找提交哈希
  • git reset --hard
  • git push -f origin master
  • git pull upstream master
  • git push origin master

而我的fork(origin在这里)是与upstream同步的。

相关问题