如何从一个遥控器获取并推入另一个遥控器

时间:2019-03-15 14:28:27

标签: git github

我正在开发要在组织内使用的Virtual Assistant解决方案。我已经从GitHub克隆了Microsoft AI存储库。

AI回购定期更新,以使用我想利用的新功能。

这就是我要完成的事情:

  1. 具有一个本地存储库(AI),我可以从中获取远程提交 起源/母版(AI)
  2. 我希望能够自定义代码以满足我们的需求(例如添加 自定义技能和/或本地化内容)
  3. 我希望能够将代码和更改推送到另一个远程存储库(“ MyOwnRemoteRepo ”)
  4. 然后,当从AI存储库中提取新提交时,我想成为 能够将它们与我的自定义代码合并,并将其提交到 MyOwnRemoteRepo 仓库。

所以:

  1. 将AI存储库( AI )克隆到本地主机
  2. AI 起源/母版->本地母版)中获取更改
  3. 本地管理员
  4. 进行更改本地主服务器中的
  5. 推送更改为 MyOwnRemoteRepo origin / master
  6. 返回第2步

我试图针对这种情况寻找一种Git策略,但是我没有找到任何好的建议。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

最简单的方法is a fork,有时这不是您想要的。在这种情况下我该怎么做:

使用自述文件创建我的存储库(在GitHub,GitLab等中)

在本地克隆我的仓库

将远程代码添加到我要从中获取代码的仓库中(我通常将其称为上游)

git remote add upstream git@github.com/whatever

从远程拉动

git pull upstream master

推送到我的仓库

git push origin master

答案 1 :(得分:1)

也许分叉的令人困惑的方面是术语“起源”。克隆存储库时,它具有一个默认的远程源,该源称为origin,它指向您在GitHub上的fork,而不是它从其派生的原始存储库。为了跟踪原始存储库,您需要添加另一个远程服务器,通常称为“上游:”

git remote add upstream git://github.com/user/repo.git

然后您的过程变得很清楚:您从上游获取,然后推入/拉入原点。完成所有设置后,'git remote -v`将显示如下内容:

`origin https://github.com/you_repo/AI.git (fetch)
 origin https://github.com/you_repo/AI.git (push)
 upstream   https://github.com/Microsoft/AI.git (fetch)
 upstream   https://github.com/Microsoft/AI.git (push)`

查看有关此主题和相关主题的其他更深入的答案:What is the difference between origin and upstream on GitHub?Definition of "downstream" and "upstream"