git svn-如何在Gi上发送拉取请求

我们最近已从SVN迁移到Git。 我们已经在局域网中的一台计算机上建立了一个裸仓库,并在其他计算机上进行了克隆。 现在,当任何人进行更改并提交时,我们希望他将拉取请求发送到裸仓库(通过告诉或通过电子邮件或其他任何方式),然后再进行更改并将其拉入裸仓库(与之相同) GitHub)。

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

jimy asked 2019-11-06T23:59:54Z
3个解决方案
77 votes

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

本地Git

本地Git git request-pull命令的手册页非常简短,其中包含以下一句描述:

汇总两次对标准输出的提交之间的更改,并将给定的URL包括在生成的摘要中。

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

GitHub拉取请求

使用GitHub Web服务时,“拉取请求”是功能齐全的交互式协作工具。 GitHub拉取请求具有:

  • 有关更改的详细说明,不仅仅是单个提交摘要
  • 通知自动发送给选择观看项目的用户
  • 在线审核界面,其他人可以在其中评论拟议的更改
  • 用于记录有关提交的对话的讨论注释
  • 集中管理拉取请求,以免丢失

值得注意的是,Linus对这两个功能的相对效用有自己的见解。

结论

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

  • 使用GitHub。 这肯定需要最少的精力,但是如果您的项目不是公开的,则必须向GitHub付费以托管私有存储库。 有些人可能对此选择不满意。
  • 使用Gerrit。 Gerrit是一个可以下载的开源服务器程序,它提供了许多与GitHub中可用的功能相似的功能。 它特别适合于协作代码审查。
  • 使用git request-pull和邮件列表。 使用这种方法需要工程师更多的纪律,因为很容易放错位置或处理邮件列表消息。 此方法没有中央问责制。
Greg Hewgill answered 2019-11-07T00:01:58Z
57 votes

术语“拉取请求”不是github专有术语。

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

有关更多深入的解释并为您节省一些时间,请查看:

  • [http://git-blame.blogspot.com.ar/2012/01/using-signed-tag-in-pull-requests.html]
  • [http://wiki.koha-community.org/wiki/Sending_a_%22request_to_pull%22]

这不是BTW的新功能。

编辑:这个替代答案是在@Greg Hewgill最初接受的答案被重写之前做出的。 我发布是因为   这是我一直在寻找的答案,我认为它很适合   问有关不为用户执行拉取请求的问题   necesarilly使用github(是的,并非每个使用git的人都使用github,网址为   至少不是所有时间)。 现在,原始答案已被重写   清楚地说明这一点,我将按照我的方式留下答案   最初只是为了记录而发布。

Jens answered 2019-11-07T00:03:01Z
10 votes

执行此操作的“ git方法”将是所有开发人员在服务器上拥有自己的公共裸存储库(所有人读取acces,为开发人员自己写入acces)作为其“来源”。 而且,如果您喜欢其他的“ trunk”(或“ stable”或任何您想称呼的东西)裸仓库,那么部分或所有开发人员都可以对其进行写访问。 开发人员将其回购反映在其公共回购中,并从其他开发者那里撤出。 这样,您不必担心是否将某些事情推到尚无法使用的公共仓库中。 (开发人员可以将您拉到测试分支,然后查看它是否起作用。)当您拥有稳定的规范分支时,可以将其推送到“主干”存储库中。

Stein G. Strindhaug answered 2019-11-07T00:03:26Z
translate from https://stackoverflow.com:/questions/6235379/how-to-send-pull-request-on-git