“拉取请求”和“分支”之间有什么区别?
拉动请求 分支
答案 0 :(得分:2)
拉取请求不是git概念。诸如github或bitbucket之类的网站使用它来引用分支上正在开发的更改,以将其移植到另一个分支中。 git中的分支是指向修订的指针。
答案 1 :(得分:1)
Git很少使用命令git request-pull。该请求告诉其他人在何处以及从哪个引用取回以检索未决的更改,以便他们可以在必要时应用这些更改。
生成一个请求,要求您的上游项目将更改引入 他们的树。
拉取请求是通过在Git引用的帮助下托管Github和Gitlab之类的服务而实现的变体。格式为refs/pull/${number}/head
。分支也是一种引用,格式为refs/heads/foo
(本地分支)或refs/remotes/origin/foo
(远程跟踪分支)。 Gerrit是另一项托管服务,它以另一种形式来执行挂起的更改,即具有一个或多个补丁集的更改,格式为refs/changes/11/23411/1
。
我们可以使用git fetch origin refs/pull/98/head
或git fetch origin master
来获取拉取请求或分支,并从远程存储库到本地存储库检索未决的更改。
拉取请求和分支都是引用。它们具有不同的格式。他们有不同的目的。拉取请求通常是由托管服务从分支生成的。
答案 2 :(得分:1)
用几句话并添加“合并”的概念:
分支:您在某个阶段接受项目并启动新的“版本”,可以在其中进行进一步的更改或改进。原始版本可以演进,而新版本也可以通过进一步的更改(“提交”)进行演进。
这是分支的样子:
合并:,在某个时候,您可能希望包括所做的所有更改...然后合并两个分支:
拉取请求:在某些项目中,您可能具有启动新分支的权限,但没有将该分支合并回主分支的权限(或者,您可能只是希望您的同事看看并进行整合之前进行审查)。然后,您启动拉动请求。就像“嗨,大家看看……您认为我们可以将这些更改合并到另一个分支中吗?” 。
答案 3 :(得分:0)
简而言之,branch
是实际代码的存储位置,pull request
允许您将两个或更多分支合并为一个。
官方定义:
git-pull
-从另一个存储库或本地分支获取并与之集成git-branch
-列出,创建或删除分支 Branch
允许您divide
和管理代码,而pull
允许您merge
将它们放回原处。
可以在此处找到更详细的描述以及示例:
通常master
是一个标准分支,许多其他分支(例如dev
等)都使用pull
请求合并到了该分支。