Git-基于一个提交而不解决冲突

时间:2019-02-21 17:37:58

标签: git rebase

假设我一直在一个名为my-branch的分支上工作,有时会合并来自master的提交以保持最新状态。在某些合并中,我不得不解决冲突,这很耗时。

现在我已经完成了my-branch的工作,我想将其重新设置为master之上的一次提交。在调整基准期间,我必须解决同样繁琐的冲突。

但是我已经有了需要放入文件的确切状态,我只想清除历史记录。因此,重新设置基准的最快方法是:

  1. 倒带至主人
  2. 使文件与my-branch中的文件相同,但丢弃提交历史记录。此时,我将有很多未提交的更改。
  3. 进行一次提交

有可能吗?

编辑:SO告诉我解释为什么我的问题不是this one的重复。尽管那里获得最高评价的答案可以解决我的问题,但那里的问题是“如何压缩提交?”我的意思是“我知道如何压缩提交内容,如何在不处理冲突的情况下做到这一点?”。所以答案是一样的,但是在这里发布之前寻找解决方案时我找不到它。也许如果其他人也知道重新设置但不知道软重置,他们会在这里找到解决方案。

1 个答案:

答案 0 :(得分: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"