【问题标题】:What is the difference between a git pull request and a git push command [closed]git pull 请求和 git push 命令有什么区别[关闭]
【发布时间】:2020-03-29 19:38:58
【问题描述】:

这里是 Git 新手。

我不明白需要 pull request 还是 git push。

当我可以将更改推送到 master/origin 时,为什么我需要执行 pull request 来请求合并?

谁能给我解释一下?

【问题讨论】:

标签: git


【解决方案1】:

拉取请求是托管服务实现的特殊引用。在 Github 中,它被称为 pull request。在 Gitlab 中,它被称为 merge request。在 Gerrit 中,它被称为 pending change

创建拉取请求时,托管服务记录拉取请求的目标分支将在获得批准后合并。通过拉取请求,可以在真正合并之前完成很多事情。可以审查代码。可以运行自动构建/测试作业。

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

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

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

【讨论】:

  • 嗯,好的,明白了。因此,拉取请求更像是“请查看我的更改”。但是,如果我愿意,没有什么能阻止我推送到主分支。我认为如果有人使用 Github 你可以定义合作者,我想如果这些没有设置我将无法写入主/其他分支?
【解决方案2】:

如果您有直接推送的权限/访问权限,则根本不需要拉取请求。你只会推。

请求的重点就是 - 请求远程存储库的所有者拉取您的更改以包含在内。

【讨论】:

  • 明白了。而且您可以在大多数远程平台(如 GitHub/bitbucket 等)中定义该访问权限。如果您推送并且您无权访问,会发生什么情况,您是否会被拒绝访问?另外 - 如果你不使用像 GitHub 这样的主机平台,而是使用本地 repo,我想没有办法定义访问权限,每个人都可以推送。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2021-08-03
  • 2018-12-22
  • 2011-03-22
  • 2015-04-20
  • 2011-02-14
  • 2016-04-08
相关资源
最近更新 更多