Git - 在不解决冲突的情况下重新绑定到一个提交

问题描述 投票:1回答:1

假设我一直在研究一个名为my-branch的分支,偶尔合并来自master的提交以保持最新状态。在某些合并中,我必须解决冲突,这非常耗时。

现在我已经完成了my-branch,我想在master之上将其重新设置为一次提交。在rebase期间,我将不得不解决相同的冲突,这将是乏味的。

但我已经拥有了我需要文件的确切状态,我只想清理历史记录。所以最快的变种方法是:

  1. 回到主人
  2. 使文件与my-branch中的文件相同,但丢弃提交历史记录。在这一点上,我有很多未经修改的变化。
  3. 做一次提交

那可能吗?

编辑:SO告诉我解释为什么我的问题不是this one的副本。虽然最受欢迎的答案可以解决我的问题,但问题是“如何压缩提交?”而我的是“我知道如何压制承诺,如何在不处理冲突的情况下做到这一点?”。所以答案是一样的,但在发布此处之前我没有找到解决方案。也许如果其他人也知道rebase但不知道软重置,他们会在这里找到解决方案。

git rebase
1个回答
4
投票

当然....使用git reset --soft相当简单。

git checkout my-branch
git merge master -m "Merging last changes from master"
# we start the magic here
git reset --soft master # set the branch pointer on master
git commit -m "Here's the work for X feature in a single shot"
© www.soinside.com 2019 - 2024. All rights reserved.