git pull请求和git push命令之间有什么区别

git pull请求和git push命令之间有什么区别,git,Git,我是新手 我不明白pull请求和git推送的必要性 当我可以将更改推送到主/原点时,为什么需要执行拉取请求以请求合并 有人能给我解释一下吗?如果你有直接推送的权限,你根本不需要拉取请求。你只要推一下就行了 请求的要点就是——请求远程存储库的所有者将您的更改拉入其中。拉入请求是托管服务实现的一种特殊ref。在Github中,它被称为pull请求。在Gitlab中,它被称为合并请求。在Gerrit中,它被称为待定更改 创建拉取请求时,主机服务记录在批准拉取请求后将合并到哪个目标分支。通过pull请求

我是新手

我不明白pull请求和git推送的必要性

当我可以将更改推送到主/原点时,为什么需要执行拉取请求以请求合并


有人能给我解释一下吗?

如果你有直接推送的权限,你根本不需要拉取请求。你只要推一下就行了


请求的要点就是——请求远程存储库的所有者将您的更改拉入其中。

拉入请求是托管服务实现的一种特殊ref。在Github中,它被称为pull请求。在Gitlab中,它被称为合并请求。在Gerrit中,它被称为待定更改

创建拉取请求时,主机服务记录在批准拉取请求后将合并到哪个目标分支。通过pull请求,在它真正合并之前可以做很多事情。代码可以被审查。可以运行自动生成/测试作业

当然,如果您直接推送提交而无需任何拉式请求,也可以完成这些操作。但是,如果发现任何错误,您需要重写分支或进行额外的提交来修复它。重写已发布的分支是一场噩梦,额外的提交将使历史变得混乱和混乱

在拉请求的帮助下,我们可以使提交在真正合并之前尽可能完美。它就像一个草稿。目标是提高代码质量,减少bug和混乱


拉取请求不是强制性的。在某些工作流中,它只是一种有用的机制。如果您认为没有必要,完全可以不使用它。

相关,但不完全相同:请参阅《啊,好的,明白》的副本。因此,拉取请求更像是“请查看我的更改”的事情。但是,如果我愿意,没有什么能阻止我向主分支推进。我认为如果使用Github,您可以定义协作者,我想如果没有设置这些协作者,我将无法写入主/其他分支?明白了。您可以在大多数远程平台(如GitHub/bitbucket等)中定义访问权限。如果您推送而您没有访问权限,会发生什么情况,您会被拒绝访问吗?另外,如果你不使用像GitHub这样的主机平台,而是使用本地回购,我想没有办法定义访问权限,每个人都可以推送。非常感谢!