作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在功能分支上做了很多工作,在此期间,分支上有多个提交,但也 merge 了来自主分支的更改的提交。
现在功能分支有这样的提交:
现在在 GitHub 存储库上创建了一个 pull 请求,但很难跟进所有更改并批准它。
我想要压缩功能分支上的提交,这样我就只有一个需要审查的好提交。
我该怎么做?
我读过有关压缩更改和 rebase 的内容,但我需要一些帮助。我可以只调用 rebase -i [commitnumber]
,其中提交号是 Work 1
吗?我在功能分支上使用了它并且它工作得很好但是当 merge 提交存在时就不行了。
最佳答案
git merge --squash
这是最简单的方法。转到您的 main
分支并使用 --squash
选项 merge feature
分支。
git checkout main
git merge --squash feature
git rebase -i
这就是您的建议。 在 rebase 之前确保你有你的功能分支的备份副本。在你的功能分支上调用 git branch
:
git checkout feature
git branch feature_backup
现在检查日志以获取开始开发功能的提交的 SHA 哈希。如果这是很久以前的事,您可以使用此命令查看 feature
分支从 main
分支分离的位置:
git merge-base main feature
然后使用git rebase :
git rebase bc4b30e
继续 like it is described here .您不应该给出要压缩的提交数,而应该给出要压缩的第一个提交的 SHA 哈希值。如果那是 n 次提交之前,您可以使用 HEAD~n
。
关于git - 如何将功能分支的更改 merge 到主分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45441382/
我是一名优秀的程序员,十分优秀!