git 重置两个分支差异中的所有提交

ada*_*ges 2 git version-control github

在与其他人合作时,我通常的工作流程是创建一个功能分支,并让双方都向该分支提交更改。一起工作时,通常会做出毫无意义的承诺,例如“嘿,我做了这个小改变,你觉得怎么样?” 然而,在我们 PR 并将其合并回 master 之前,我会在git reset开始工作之前返回到第一次提交,并将历史记录分成合理和逻辑的块。

然而,这次某个同事合并到了master中,让我们的历史变得不可读。或者至少我现在无法这样做,git reset因为我们的提交不再是连续的。

我们的分支是 master 的超集,只有额外的提交。我想删除所有这些提交,但保留工作,允许我将更改提交到逻辑块中。

想法?

ada*_*ges 6

对于未来的人们,我发现解决问题的最佳方法就是修补主分支和我自己的分支之间的差异,然后将更改应用到新分支,并进行 PR。这样我就可以获得所有更改,但会稍微清理一下历史记录。

git diff --binary master my-branch > ../thing.patch

然后

git apply ../thing.patch

我知道我的问题有点奇怪,我的解决方案也是如此。但是,希望这对将来的人有所帮助。