Git如何在保持主要存储库更改的同时开发自己的软件版本[重复]

Posted

技术标签:

【中文标题】Git如何在保持主要存储库更改的同时开发自己的软件版本[重复]【英文标题】:Git How to develop own version of software while keeping main repository changes [duplicate] 【发布时间】:2014-01-02 18:51:02 【问题描述】:

我想(fork?分支?)在开源存储库上开发自己的功能,同时保留对主存储库所做的更改

例如 Main_repository

我想要实现的是拥有我的存储库,其中包含我的更改,同时允许将更改从原始存储库合并到我的存储库。

有可能吗?阅读一些关于 git 的 fork 和 branch 的信息,但不确定它们中的哪一个适用于此(如果这些选项中的任何一个具有这种可能性)。

我正在使用 SourceTree 和私有 Repo,原始存储库位于 GitHub 上。我希望我的 fork/branch 位于私有存储库中。

是否可以像这样从不同的服务器“链接”两个存储库?

【问题讨论】:

听起来您只需要 Main_repository 的基本 clone。然后是克隆的克隆……我想。 呃……嗯……不确定。我对 git 很陌生。 clone fork 和 branch 是 3 种不同的东西? 阅读手册或一些关于分支的教程。 【参考方案1】:

首先要“克隆”存储库,这样您就可以将远程存储库放入您的存储库中。

每次更改后 - 您需要执行git add,当您满意时“提交”到您的本地存储库。

如果您认为原始存储库在某些时候被修改,您可以通过git pull(仅在提交后)对其进行更新。

【讨论】:

【参考方案2】:

当您不是原始项目/存储库的直接参与者时,标准 Github 做法是分叉原始存储库以创建您自己的分叉(远程)存储库。接下来,您将分叉(远程)存储库克隆到本地计算机,以便您有一个本地工作区/存储库来进行更改。您将提交更改到本地工作区/存储库,并定期将提交从本地存储库推送回远程存储库。

为了使您的分叉存储库与原始存储库保持同步,您将为本地工作区提供第二个远程存储库,即您的本地存储库将跟踪 2 个远程存储库 - 您的分叉存储库(在您最初创建本地工作区时设置/repo)和原始 repo(您手动添加)。您将从原始存储库中提取更改,将它们与您在本地工作区/存储库中的更改合并,然后将合并的更改推送回您的分叉存储库。

Github 在这里详细解释:

https://help.github.com/articles/syncing-a-fork

设置

在您可以同步之前,您需要添加一个指向 上游存储库。您最初可能已经这样做了 分叉的。 ...

同步

将您的存储库与 上游:首先你必须从远程获取,然后你必须合并 所需的分支到您的本地分支。 ...

正在抓取

从远程存储库中获取将引入其分支并 他们各自的提交。这些存储在您的本地存储库中 在特殊分支下。 ...

合并

现在我们已经获取了上游仓库,我们想要合并它的 更改为我们的本地分支。这将使该分支同步 与上游一起,而不会丢失我们的本地更改。 ...

【讨论】:

我设置了一个 repo(我使用 bitbucket)。然后添加本地 SourceTree 存储库并添加 2 个遥控器。一个来自原始 github,另一个来自 bitbucket。从 git 中提取并推送到 bitbucket。好吃吗?

以上是关于Git如何在保持主要存储库更改的同时开发自己的软件版本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个 git 存储库作为一个存储库进行管理,但又保持独立?

如何将多个 Git 提交(已推送)还原到已发布的存储库?

我可以使分叉的 github 存储库从原始版本中保持最新吗? [复制]

Git子模块与依赖管理?

在保留所有历史提交的同时将Git存储库迁移到tfs Git

Git:在分支中创建子模块