更新我从另一个项目中分出的github repo

zen*_*ngr 108 git github

我已将父项:项目分给了Child:这个.现在,我想用父母的最新更新来更新我的孩子.我可以这样做,如果是的话怎么样?

当我更新我的github仓库时,我可以做一个"git pull"来更新我的本地仓库.

Cas*_*bel 108

在您的本地克隆Child中,从Parent中提取,如果您愿意,可以将其添加为远程:

cd child
git remote add parent <parent-url>
git pull parent
Run Code Online (Sandbox Code Playgroud)

父母的url可以是公共github repo,也可以是你的本地克隆 - 本地克隆当然会更快.如果你想拉除父repo的当前HEAD以外的分支,只需添加一个参数(例如git pull parent topic-branch).如果这是一次性的事情,你可以跳过添加遥控器:git pull <parent-url> [branch].

Pull是一个抓取和合并的组合,所以一旦你完成了,你就有了一个新的合并提交,你可能想要在某个时候回到你的公共回购.

这里的关键点,如果不清楚的话,从父(上游)存储库中提取与从当前存储库中的子公共克隆中提取并没有什么不同.无论哪种方式,您都从具有一些共同历史记录的存储库中获取,并将其合并到当前分支中.当然,既然你正在合并,那么就需要一个工作树 - 所以这必须在你的本地仓库中完成.在github上托管的repo本质上是一种发布你在本地完成的东西的方式.所有你真正能做到的就是推/拉,并浏览那里的东西.

  • 我收到一个错误`你要求从远程'起源'拉出,但没有指定分支.因为这不是当前分支的默认配置远程,所以当我执行`git pull parent`时,必须在命令行上指定一个分支.您可以使用`git pull parent master`快速浏览它.如果您直接在主分支中工作或只是拥有一个分支或者不知道分支是什么并且只是想快速合并,这只是一个解决方案.一种新的蜜蜂解决方案,或者如果你只是一个快速解决方案来引入一个小变化. (4认同)

hob*_*bbs 16

  1. 如果您还没有将您的仓库克隆到本地机器: git clone git@github.com:utkarsh2012/voldemort.git
  2. 将上游添加为新远程: git remote add upstream git://github.com/voldemort/voldemort.git
  3. 检查分支后,将上游拉入分支,这将在两组更改之间创建合并:git pull upstreamgit pull upstream branch-to-merge.如果您正在处理未拆分的分支,您还可以使用git fetchgit rebase重新定义您的工作,而无需合并.


Luk*_*ncl 13

你要:

git pull git://github.com/voldemort/voldemort.git

  • @zneger:远程是一个命名的远程存储库.它使您不必每次要引用时都输入URL; 您只需键入遥控器的名称即可.它还可以自动执行一些常见任务,例如设置远程分支. (2认同)

thS*_*oft 5

这也可以简单地在 GitHub 的 Web 界面上完成:发出Pull Request但交换base repohead repo。如果拉动可以自动执行,那就是。

  • **警告** 如果你这样做,它会在你的分叉项目中添加一个提交。所以你最终会在父项目之前提交一次。 (8认同)