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