我们最近从SVN迁移到了Git。我们在我们的局域网中的一台机器上设置了一个裸仓库,并在其他机器上进行了克隆。现在,当任何人做出更改并提交时,我们希望他将拉取请求发送到裸仓库(通过告知、电子邮件或其他方式),之后将会对更改进行审核并在裸仓库上拉取它(就像在GitHub上工作一样)。
我们是否需要安装任何界面或者Git本身有一些命令可以使用?
我们是否需要安装任何界面或者Git本身有一些命令可以使用?
Git(软件)和GitHub(网络服务)都有一个名为“pull request”的概念,但很不幸,它们并不完全相同。
原生的 Git request-pull
命令有一个非常简短的手册页面,其中包含以下一句话描述:
总结两个提交之间的更改,并将给定的 URL 包含在生成的摘要中。
这是一个相当低级的命令,生成适合发布到邮件列表的更改简短摘要。其他用户可以使用此“pull request”中发布的 URL 手动拉取更改到自己的存储库。
使用GitHub 网络服务时,Pull Request 是一个功能齐全的交互式协作工具。GitHub pull request 具有以下功能:
值得注意的是,Linus 对这两个功能的相对实用性有自己的看法。
上述两个“pull request”功能在精神上相似,但在实现上完全不同。特别是,git request-pull
命令不能用于在 GitHub 上创建新的 Pull Request。如果您想支持“pull request”类型的功能,则有几个选择:
git request-pull
和邮件列表。使用此方法需要更多的工程师纪律性,因为很容易错过或处理邮件列表信息。此方法没有与之关联的中央责任。git request-pull
命令。请参阅 https://github.com/torvalds/linux/pull/17#issuecomment-5654674。 - user1203803"Git方式" 是这样做的:所有开发人员在服务器上都有自己的公共bare库(读权限所有人,写权限仅为本人)。如果您想要一个额外的“主干”(或“稳定”或您想要什么名称)的bare仓库,一些或所有开发人员都可以对其进行写入访问。开发人员将其仓库镜像到自己的公共仓库中,并从其他开发人员那里拉取。这样,如果您将尚未完成的内容推送到公共仓库中,您不必担心。(开发人员可以从您的仓库拉取到测试分支并查看是否有效)。当您有一个稳定的规范分支时,可以将其推送到“主干”仓库。
git revert
创建一个新的提交来撤销带有错误的更改。然后你推送那个新的提交。Git非常灵活,所以如果这是一个大型团队的问题,你可以让开发人员先推送到一个中间仓库。然后,一个集成工程师会从中间仓库拉取更改,如果测试通过,然后将这些更改推送到主要仓库。开发人员会从主要仓库拉取,这样他们就知道他们有经过测试的可行代码。 - Greg Hewgillgit-request-pull
(http://www.kernel.org/pub/software/scm/git/docs/git-request-pull.html)是每个 Git 发行版的一部分。 - eckes