假设我一直在一个名为my-branch
的分支上工作,有时会合并来自master
的提交以保持最新状态。在某些合并中,我不得不解决冲突,这很耗时。
现在我已经完成了my-branch
的工作,我想将其重新设置为master
之上的一次提交。在调整基准期间,我必须解决同样繁琐的冲突。
但是我已经有了需要放入文件的确切状态,我只想清除历史记录。因此,重新设置基准的最快方法是:
my-branch
中的文件相同,但丢弃提交历史记录。此时,我将有很多未提交的更改。有可能吗?
编辑:SO告诉我解释为什么我的问题不是this one的重复。尽管那里获得最高评价的答案可以解决我的问题,但那里的问题是“如何压缩提交?”我的意思是“我知道如何压缩提交内容,如何在不处理冲突的情况下做到这一点?”。所以答案是一样的,但是在这里发布之前寻找解决方案时我找不到它。也许如果其他人也知道重新设置但不知道软重置,他们会在这里找到解决方案。
答案 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"