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

标签 git github version-control

与他人合作时,我通常的工作流程是创建一个功能分支,然后让双方都向该分支提交更改。一起工作时,通常会有无意义的提交,例如“嘿,我做了这个小改动,你觉得怎么样?”然而,在我们 PR 并将其 merge 回 master 之前,我会在开始工作之前执行 git reset 回到第一次提交,并将历史拆分为合理且合乎逻辑的 block 。

但是,这次某位同事 merge 到master中,导致我们的历史无法读取。或者至少我现在无法 git reset 因为我们的提交不再是连续的。

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

想法?

最佳答案

对于 future 的人,我发现解决我的问题的最好方法是只对 master 和我自己的之间的差异打补丁,然后将更改应用到一个新分支,然后 PR 那个。这样我可以获得所有更改,但稍微清理一下历史记录。

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

然后

git apply ../thing.patch

我知道我的问题有点靠不住,我的解决方案也是如此。但是,希望这会在将来对某人有所帮助。

关于git重置两个分支差异中的所有提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268464/

相关文章:

git - apt-get 在 Ubuntu 12.04 上找不到包 `git`

Gitkraken striketrough 分支名称

将更改分发到多个分支的 Git 工作流程

mysql - Git Pre-Commit 钩子(Hook)在提交后添加文件

git - 为什么 `git pull` 工作得很好,但 `git push` 却不行?

Git检查是否有未完成的提交要推送

git - repo 工具无法根据标签 pull

git - 将多个子目录分离(移动)到单独的 Git 存储库中

ruby - svn ruby​​ 绑定(bind)是否作为 gem 提供?

version-control - 我应该将二进制 Assets 保存在 TFS 下吗?如何?