【发布时间】:2020-03-29 19:38:58
【问题描述】:
这里是 Git 新手。
我不明白需要 pull request 还是 git push。
当我可以将更改推送到 master/origin 时,为什么我需要执行 pull request 来请求合并?
谁能给我解释一下?
【问题讨论】:
-
相关,但不完全相同:见stackoverflow.com/q/49423624/1256452
标签: git
这里是 Git 新手。
我不明白需要 pull request 还是 git push。
当我可以将更改推送到 master/origin 时,为什么我需要执行 pull request 来请求合并?
谁能给我解释一下?
【问题讨论】:
标签: git
拉取请求是托管服务实现的特殊引用。在 Github 中,它被称为 pull request。在 Gitlab 中,它被称为 merge request。在 Gerrit 中,它被称为 pending change。
创建拉取请求时,托管服务记录拉取请求的目标分支将在获得批准后合并。通过拉取请求,可以在真正合并之前完成很多事情。可以审查代码。可以运行自动构建/测试作业。
当然,如果您在没有任何拉取请求的情况下直接推送提交,这些事情也可以完成。但是,如果发现任何错误,您需要重写分支或进行额外的提交来修复它。重写已发布的分支是一场噩梦,额外的提交会使历史变得混乱和混乱。
在拉取请求的帮助下,我们可以在提交真正合并之前使提交尽可能完美。这就像一个草稿。目标是提高代码质量,减少错误和混乱。
拉取请求不是强制性的。在某些工作流程中,它只是一种有用的机制。如果您认为没有必要,完全可以不使用它。
【讨论】:
如果您有直接推送的权限/访问权限,则根本不需要拉取请求。你只会推。
请求的重点就是 - 请求远程存储库的所有者拉取您的更改以包含在内。
【讨论】: