Git 将其他分支合并到我的分支,并将太多的提交推送到远程

Git 将其他分支合并到我的分支,并将太多的提交推送到远程,git,Git,我有一个分支,只有我在做。 我还有一个分支机构B,那里有很多其他人在做这项工作。 我将分支B合并到分支A中,然后对分支A进行了更改。 提交并推送到我的远程分支A 但当我检查远程回购协议时,我发现我还向我的远程分支A提交了1000多份来自其他人的提交 有没有一种简单的方法可以将推送恢复到远程分支a?我的理解是,您希望通过一次提交重新确定所有提交的基础,从而删除其他开发人员提交的历史记录 让我们假设如下: latest_commit a b c . . . after_merge your_last

我有一个分支,只有我在做。 我还有一个分支机构B,那里有很多其他人在做这项工作。 我将分支B合并到分支A中,然后对分支A进行了更改。 提交并推送到我的远程分支A 但当我检查远程回购协议时,我发现我还向我的远程分支A提交了1000多份来自其他人的提交


有没有一种简单的方法可以将推送恢复到远程分支a?

我的理解是,您希望通过一次提交重新确定所有提交的基础,从而删除其他开发人员提交的历史记录

让我们假设如下:

latest_commit
a
b
c
.
.
.
after_merge
your_last_commit
运行以下脚本:

git checkout <your_branch>
git rebase -i your_last_commit
git签出
git rebase-我是你最后的承诺
当提示在合并后输入add
。最新提交时,这些提交将在本地历史记录中删除。当您推动这些更改时,它将是一个非快进更新


免责声明:虽然它实现了所需的行为,但可能会导致协作问题。阅读更多有关它的信息(不要对存在于存储库之外且人们可能基于其进行工作的提交进行重定基准)。

这就是合并的工作原理-您已将分支B中所做的所有更改合并到您的分支中。尝试重置本地分支A,并将其推回远程。但总的来说,为了使用git组织工作,您可能会对git流模型感兴趣。您可以在合并时使用
--no ff
(无快进)将其他分支中的更改汇总为一个“合并提交”。