【问题标题】:How to squash git commits after doing a merge合并后如何压缩 git 提交
【发布时间】:2016-05-22 16:37:21
【问题描述】:

我有一个拉取请求,其中我的原始提交未通过测试。我有一段时间没看它,几个月后又回来看它。在此期间,上游 repo 做了很多提交,所以我将它们合并到我的 repo 中。然后我添加了一个提交来修复损坏的测试。

我想将我的拉取请求压缩成一个提交。我有:

2102f91 <-- original commit from Jan 2015
c202023 <-- merge from upstream Feb 2016
df22e9c <-- commit to fix tests Feb 2016

是否可以压缩它,或者删除分支并重做我的拉取请求是否更容易?

【问题讨论】:

  • 查看提交历史,您的提交似乎不在它们自己的分支上,因为c202023 在它们之间。但是随后您提到“删除分支”的可能性。那么你的提交是在 master 上还是在他们自己的分支上?
  • 对不起,这是在它自己的分支上

标签: git github merge rebase squash


【解决方案1】:

既然你已经推送了你现有的分支(我们称之为 old_branch),我不会重写它。相反,我会从最新的 master 创建一个新分支(我们称之为 new_branch)。然后我们可以做一个“壁球合并”:

git checkout master -b new_branch
git merge old_branch --squash

现在 new_branch 将包含一个提交,所有内容都在 old_branch 中完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 2017-09-26
    • 2021-03-26
    • 2018-06-01
    • 2012-01-24
    • 2018-11-29
    • 2016-02-08
    • 2011-08-05
    相关资源
    最近更新 更多