让我们假设我在git中从master分支了一个功能分支。现在我对这个分支进行了一些更改,我认为它已经为master分支做好了准备。所以我推送到远程存储库并使用github UI从我的功能分支向主分支发出拉取请求。
现在,由于pull请求中的反馈,我需要更改功能分支中的一些内容。我现在是将更改作为新提交提交并推送它的简单选项。如果此分支现在稍后合并,我的功能将分为多个提交。
如果我想避免多次提交,有什么可能性?我看到了以下几种可能性:
git commit --ammend
并将更改附加到当前提交git rebase -i
并将更改压缩成一个提交这两种解决方案都有一个很大的问题:如果没有push -f
,我就不能再做了。
问题:
push -f
吗?push -f
?答案 0 :(得分:1)
git push -f
。gitk
和git log
等工具可以提供帮助。git push -f
并不错,但如果您想保留旧分支,则可以随时创建新分支。答案 1 :(得分:0)
git push -f <remove> <branch>
只强制推动一个分支。答案 2 :(得分:0)
答案 3 :(得分:0)
如果您的拉取请求未被接受,并且讨论已导致您收到反馈,我会说您的原始拉取请求已被拒绝,如果您是项目,则应准备新请求对拉取请求有一些更严格的要求。
否则,您需要向分支添加新提交,而不是重新定位或修改已经存在的提交,将它们推送到github并让pull请求更新。
通过这种方式,您最终会得到一个至少有两次提交的pull请求:已经讨论过的原始提交,以及提交反馈的提交。
如果项目要求拉取请求仅为一次提交,则必须创建一个新的拉取请求,将所有已更改的压缩压缩为一次提交,并且可能已重新定位到新的当前开发头。