繁体   English   中英

如何在 Git 上发送拉取请求

[英]How to send pull request on Git

我们最近从 SVN 迁移到 Git。 我们在 LAN 网络中的一台机器上设置了一个裸存储库,并在其他机器上克隆。 现在,当任何人进行更改和提交时,我们希望他将拉取请求发送到裸仓库(通过告知或发送电子邮件或任何其他方式),然后将 go 通过更改并将其拉到裸仓库(与它在GitHub)。

我们是否需要安装任何接口或者Git本身有一些命令?

Git(软件)和 GitHub(web 服务)都有一个名为“拉取请求”的概念,不幸的是它们并不完全相同。

原生 Git

原生的 Git request-pull命令有一个很短的手册页,只有一句话描述:

总结对标准 output 的两次提交之间的更改,并在生成的摘要中包含给定的 URL。

这是一个相当低级的命令,它生成适合发布到邮件列表的更改的简短摘要。 其他用户可以使用此“拉取请求”中发布的 URL 手动将更改拉取到自己的存储库中。

GitHub 拉取请求

使用GitHub web 服务时, Pull Request是一个功能齐全的交互式协作工具。 GitHub 拉取请求具有:

  • 比单个提交摘要更详细的更改描述
  • 通知自动发送给选择观看项目的用户
  • 在线评论界面,其他人可以在其中评论提议的更改
  • 用于记录有关提交的对话的讨论评论
  • 拉取请求的集中管理,因此它们不会丢失

值得注意的是, Linus 对这两个功能的相对实用性有自己的看法

结论

上述两个“拉取请求”特性在精神上相似,但在实现上完全不同。 特别是, git request-pull命令不能用于在 GitHub 上创建新的 Pull Request。 如果您想支持“拉取请求”类型的功能,您有多种选择:

  • 使用 GitHub。 这绝对需要最少的努力,但如果您的项目不是公开的,您将不得不支付 GitHub 来托管私有存储库。 有些人可能对这种选择感到不舒服。
  • 使用格里特 Gerrit 是一个可以下载的开源服务器程序,它提供了许多与 GitHub 中可用的功能相似的功能。 它特别适合协作代码审查。
  • 使用git request-pull和邮件列表。 使用这种方法需要您的工程师更加自律,因为很容易放错地方或错误处理邮件列表消息。 没有与此方法相关的中央问责制。

术语“拉取请求”不是github 特定术语。

有一个 git request-pull 命令,你可以在这里阅读更多信息: http://linux.die.net/man/1/git-request-pull

对于一些更深入的解释,并为您节省一些谷歌搜索:

顺便说一句,这不是一个新功能。

编辑:这个替代答案是在@Greg Hewgill 最初接受的答案被重写之前做出的。 我发布它是因为这是我一直在寻找的答案,而且我认为它适合关于不需要使用 github 的用户进行拉取请求的问题(是的,不是每个使用 git 的人都使用 ZBF215181B4140522437B3,至少不是所有的时间 673)。 既然原始答案已被重写,使这种差异变得明确,我将按照我最初发布它的方式留下这个答案,仅供记录。

这样做的“git方式”将是所有开发人员在服务器上都有自己的公共裸存储库(读取所有人的访问权限,为开发人员自己编写访问权限)作为他们的“来源”。 如果你喜欢一个额外的“主干”(或“稳定”或任何你想称之为的)裸仓库,一些或所有开发人员都可以写访问。 开发人员将他们的 repo 镜像到他们的公共 repo 上,并从其他开发人员那里拉取。 这样一来,如果您将某些内容推送到您的公共 repo 中,您就不必担心它还不起作用。 (开发人员可以从你那里拉到一个测试分支,看看它是否有效。)当你有一个稳定的规范分支时,你可以将它推送到“主干”存储库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM