百度知道的一个回答是:

有一个仓库,叫Repo A。你如果要往里贡献代码,首先要Fork这个Repo,于是在你的Github账号下有了一个Repo A2,。然后你在这个A2下工作,Commit,push等。然后你希望原始仓库Repo A合并你的工作,你可以在Github上发起一个Pull Request,意思是请求Repo A的所有者从你的A2合并分支。如果被审核通过并正式合并,这样你就为项目A做贡献了。


知乎上beepony是这样回答的:

我尝试用类比的方法来解释一下 pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。

当你想更正别人仓库里的错误时,要走一个流程:
  1. 先 fork 别人的仓库,相当于拷贝一份,相信我,不会有人直接让你改修原仓库的
  2. clone 到本地分支,做一些 bug fix
  3. 发起 pull request 给原仓库,让他看到你修改的 bug
  4. 原仓库 review 这个 bug,如果是正确的话,就会 merge 到他自己的项目中
至此,整个 pull request 的过程就结束了。


作者:beepony
链接:https://www.zhihu.com/question/21682976/answer/79489643
来源:知乎
著作权归作者所有,转载请联系作者获得授权。



git指令  远程同步

# 下载远程仓库的所有变动

$git fetch [remote]

# 显示所有远程仓库

$git remote -v

# 显示某个远程仓库的信息

$git remote show [remote]

# 增加一个新的远程仓库,并命名

$git remote add [shortname] [url]

# 取回远程仓库的变化,并与本地分支合并

$git pull [remote] [branch]

# 上传本地指定分支到远程仓库

$git push [remote] [branch]


fetch同pull的区别在于:git fetch:是从远程获取最新版本到本地,不会自动merge 
  而git pull是从远程获取最新版本并merge到本地仓库 
  从安全角度出发,git fetch比git pull更安全,因为我们可以先比较本地与远程的区别后,选择性的合并。 
  git push 默认推送到master,如果有多个分支,则多个分支一起推送到远程 



Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐