“拉取请求”和“分支”之间有什么区别?

时间:2019-05-26 15:15:53

标签: git github

“拉取请求”和“分支”之间有什么区别?

  

拉动请求   分支

4 个答案:

答案 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/headgit fetch origin master来获取拉取请求或分支,并从远程存储库到本地存储库检索未决的更改。

拉取请求和分支都是引用。它们具有不同的格式。他们有不同的目的。拉取请求通常是由托管服务从分支生成的。

答案 2 :(得分:1)

用几句话并添加“合并”的概念:

分支:您在某个阶段接受项目并启动新的“版本”,可以在其中进行进一步的更改或改进。原始版本可以演进,而新版本也可以通过进一步的更改(“提交”)进行演进。

这是分支的样子:

enter image description here

合并:,在某个时候,您可能希望包括所做的所有更改...然后合并两个分支:

enter image description here

拉取请求:在某些项目中,您可能具有启动新分支的权限,但没有将该分支合并回主分支的权限(或者,您可能只是希望您的同事看看并进行整合之前进行审查)。然后,您启动拉动请求。就像“嗨,大家看看……您认为我们可以将这些更改合并到另一个分支中吗?”

答案 3 :(得分:0)

简而言之,branch是实际代码的存储位置,pull request允许您将两个或更多分支合并为一个。

官方定义:

  • git-pull-从另一个存储库或本地分支获取并与之集成
  • git-branch-列出,创建或删除分支

Branch允许您divide和管理代码,而pull允许您merge将它们放回原处。

可以在此处找到更详细的描述以及示例:

通常master是一个标准分支,许多其他分支(例如dev等)都使用pull请求合并到了该分支。