Git多个存储库(第三个存储库的本地更改的远程副本)

时间:2019-05-23 13:53:52

标签: git repository

这是一个不断涌现的场景,但是我将使用我正在使用的特定示例。

我有一个远程存储库的本地副本(在本例中为Marlin)。我进行本地配置更改并构建。这些对Marlin用户不感兴趣,但我希望它们受版本控制。因此,我创建了一个分支并将其推送到我自己的服务器上(而不是在GitHub上)的存储库中。

我已经设置好了,并开始使用我的初始分支。后来,我从服务器中检出了存储库,但是对于现有的分支或新的Marlin分支,它都不了解原始的Marlin存储库。

我正在寻找工作流程建议,这些建议可以使我: 1.将更新从Marlin存储库拉到我自己的分支中 2.从Marlin存储库中创建一个新分支,该分支将在我的服务器存储库中进行版本控制

很抱歉,如果这是基本知识,但是这种多存储库范例对我来说是新的。

Git版本: 本地2.20.1 服务器2.7.4

2 个答案:

答案 0 :(得分:0)

只需将原始的gh repo添加为该新repo的新遥控器,然后您就可以从其中获取东西。

git remote add original https://github/blahblah.git
git fetch original

然后您会在原始github存储库中看到这些内容(可以将远程控制称为您想要的任何东西……原始的,上游的,gh的,任何您想要的东西)。

答案 1 :(得分:0)

您要的是完全合理的。这是分叉存储库时开源软件中的标准工作流程,因此您有两个远程存储库,一个是您拥有的(origin),另一个是其他人拥有的(upstream)。

工作流程可能如下所示:

# Clone down the Marlin repository
git clone https://github.com/person/marlin.git

# Move into the repository's directory
cd marlin

# List your current remotes
git remote -v

### Example output:
### origin      https://github.com/person/marlin.git (fetch)
### origin      https://github.com/person/marlin.git (push)

如您所见,您现在有一个名为“ origin”的遥控器。但这是别人拥有的,所以我们将其称为“上游”,就像经典名称一样

# Rename the "origin" remote to "upstream"
git remote rename origin upstream

现在,您将在服务器上创建一个存储库,然后获取克隆URL。拥有该网址后,您可以将其添加为第二个遥控器,如下所示:

# Add a second remote to your repository
git remote add origin https://example.com/foo/marlin.git

最后,将想要的任何分支推送到您拥有的原始仓库中

# Push the master branch to the repo you owns
git push origin master