假设我们创建了一个主题/功能分支,并且我们正在处理一个星期。为了与集成分支保持最新,我们可以使用git rebase
,但是出于问题的考虑,让我们使用git merge
。因此,我们在功能分支中创建了合并提交-随便将集成分支合并到功能分支中。
我相信这些合并提交基本上在一天结束时都是无用的噪音。完成功能后,将功能分支合并到集成分支时,是否有消除这些合并提交的好方法?我认为将分支压缩为一次提交是一种方法吗?
答案 0 :(得分:2)
是的,如果您合并并且不重新设置基础,那么压缩是“删除”合并提交的方法。
我并不总是这样做,尤其是当功能很大并且合并需要解决冲突时。
答案 1 :(得分:2)
我相信这些合并提交基本上在一天结束时都是无用的噪音。是否有摆脱这些合并提交的好方法
告诉git您正在跟踪的分支,您的命令是简单的git rebase
。
例如,使wizzo
跟踪开发人员git branch -t wizzo dev
,在开发人员上进行一些工作,在wizzo上进行一些工作,合并,在这两者上进行更多的工作,您会得到像这样的东西:
* f7b551f (dev) 4dev | * 982b0c7 (HEAD -> wizzo) 3wiz | * 5de6750 Merge branch 'dev' into wizzo | |\ | |/ |/| * | 2e8c7ec 1dev | * a320e00 2wiz |/ * c823194 Init
在git rebase
之后:
* 096cbfc (HEAD -> wizzo) 3wiz * 8e5d6c5 2wiz * f7b551f (dev) 4dev * 2e8c7ec 1dev * c823194 Init
git rerere
旨在使此工作流程尽可能轻松,它记住了如何解决合并冲突,因此当您最终从一个月后开始像这样重新建立基础时,即使您不记得自己做了什么, Git确实如此。
答案 2 :(得分:1)
Tymtam是正确的,但是如果您想手动操作,可以这样做:
git checkout a
git merge b
git reset --soft origin/a
git add -A
git commit -m "Single commit all changes"