在Git中管理多个版本的代码

在Git中管理多个版本的代码,git,Git,我有一个项目,我目前正在利用GitFlow方法进行工作。我们最近得到了一个客户机,他们将使用我们的代码库,并针对他们进行了一些更改 我想做的是让他们的代码自动更新,并在我们的主分支中实现修补程序和功能,同时仍然让他们的代码独立,并且所做的更改不会干扰主分支 所以基本上热修复->合并到主/客户端分支 此外,如果有任何方法可以将客户机代码视为单独的回购协议,以便使用它设置开发分支,那将更好,但它也需要能够接收对主分支的更改。实际上,使用普通存储库的“fork”听起来是一种很好的方法。这是GitHub

我有一个项目,我目前正在利用GitFlow方法进行工作。我们最近得到了一个客户机,他们将使用我们的代码库,并针对他们进行了一些更改

我想做的是让他们的代码自动更新,并在我们的主分支中实现修补程序和功能,同时仍然让他们的代码独立,并且所做的更改不会干扰主分支

所以基本上热修复->合并到主/客户端分支

此外,如果有任何方法可以将客户机代码视为单独的回购协议,以便使用它设置开发分支,那将更好,但它也需要能够接收对主分支的更改。

实际上,使用普通存储库的“fork”听起来是一种很好的方法。这是GitHub工作原理的基础

在中央Git服务器上:

mkdir clients_repo.git
cd clients_repo.git
git init --bare
制作官方存储库的初始“分叉”,这只会带来“主”分支:

您可以在
客户机\u repo
中创建任意数量的分支

处理客户的存储库:

git clone git@server/clients_repo.git
cd clients_repo
git remote add upstream git@server/official_repo.git
git fetch upstream
# create branches, edit, commit, merge, whatever
当需要将您的官方存储库中的更改集成到客户的存储库中时,只需将
上游/master
合并到您的客户\u repo master branch:

git clone git@server/official_repo.git
cd official_repo
git remote add clients_repo git@server/clients_repo.git
git push clients_repo master
cd clients_repo
git checkout master
git fetch upstream
git merge upstream/master
# Resolve conflicts and commit if necessary
git push origin HEAD

好的,那么,你的问题是什么?@jthill解决这个问题的最佳方法是什么?你本质上是在问如何使用Git,如果不是如何使用一般的源代码控制系统的话。我认为这个问题比“如何使用Git”更微妙。听起来好像有一个为某个客户端定制的应用程序,在两个不同的代码集之间很难维护bug修复。定制可能包括应用程序“官方”版本中没有的更新或不同功能。