git 尽管没有人触及远程分支,但阻止推送
git prevents to make push although nobody touched remote branch
我们在 git 中有一个非常简单的工作流程:dev 分支和 featured 分支。当功能分支上的工作完成后,我们在 dev 上进行 rebase 然后推送。但有时 git 阻止推送,尽管我确信我在功能分支上的更改是最后的。它声称我先拉。然后它从远程仓库获取我以前版本的分支。
其实我可以强推,但我不认为,这是最好的解决办法。
不幸的是,目前还很难确定是什么原因造成的。据推测,有人也拿走了我的分支,在上面工作,然后在 dev 上进行 rebase。但这些变化,实际上比我的更早实施。
所以,我想有人已经遇到过这样的情况(?)
如果您要对本地功能分支进行变基,那么唯一的选择就是强制推送。
git push -f
但是,如果有其他人在功能分支上工作,则不推荐使用此方法,因为他们将强制拉取更改。
变基有效地重写了功能分支的历史。这就是为什么你必须强制推送。
您可以使用的另一个选项是根本不变基。您始终可以 merge
将 dev 中的提交提交到您的功能分支。这将确保您可以使用正常的推送来更新远程,并且功能分支的所有其他用户也可以毫无问题地拉取。
我们在 git 中有一个非常简单的工作流程:dev 分支和 featured 分支。当功能分支上的工作完成后,我们在 dev 上进行 rebase 然后推送。但有时 git 阻止推送,尽管我确信我在功能分支上的更改是最后的。它声称我先拉。然后它从远程仓库获取我以前版本的分支。 其实我可以强推,但我不认为,这是最好的解决办法。 不幸的是,目前还很难确定是什么原因造成的。据推测,有人也拿走了我的分支,在上面工作,然后在 dev 上进行 rebase。但这些变化,实际上比我的更早实施。 所以,我想有人已经遇到过这样的情况(?)
如果您要对本地功能分支进行变基,那么唯一的选择就是强制推送。
git push -f
但是,如果有其他人在功能分支上工作,则不推荐使用此方法,因为他们将强制拉取更改。
变基有效地重写了功能分支的历史。这就是为什么你必须强制推送。
您可以使用的另一个选项是根本不变基。您始终可以 merge
将 dev 中的提交提交到您的功能分支。这将确保您可以使用正常的推送来更新远程,并且功能分支的所有其他用户也可以毫无问题地拉取。