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

时间:2015-01-29 18:20:01

标签: git

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

我要做的是使用我们的主分支中实现的修补程序和功能自动更新代码,同时仍然将代码分开并且更改不会干扰主分支。

所以基本上是修补程序 - >合并到主/客户分支

此外,如果有任何方法可以将客户端代码视为一个单独的仓库,那么可以使用它来设置开发分支甚至更好,但它需要能够接收对主分支的更改同样。

1 个答案:

答案 0 :(得分:1)

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

在您的中央Git服务器上:

mkdir clients_repo.git
cd clients_repo.git
git init --bare

制作首字母" fork"您的官方存储库,只会带来" master"分支:

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

您可以在clients_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

当需要将您的官方存储库中的更改集成到客户端时,只需将upstream/master合并到您的clients_repo主分支中:

cd clients_repo
git checkout master
git fetch upstream
git merge upstream/master
# Resolve conflicts and commit if necessary
git push origin HEAD