Git将单个分支发布到辅助远程仓库

时间:2017-09-24 15:27:49

标签: git version-control

我有一个用于主动开发的团队git repo,以及一个“公共”repo,我们发布我们的发布代码供其他团队使用。

我不是git专家,所以我不知道这是否可以开箱即用,或者我目前正在做的事情是最好的做事方式。

我们需要做的是获取完成的发布代码,并在我们的sprint周期结束时将其发布到我们的公共仓库。我们不希望其他团队访问我们的团队回购,我们也不希望团队回购分支被推送到公共回购。

我目前正在做的是当我们有点发布或我们想要发布的任何代码时,我将公共仓库克隆到我硬盘上的文件夹中。然后我将dev repo发布分支中的所有文件复制到该文件夹​​中。最后,我将这些更改提交回公共仓库并删除文件夹。

我已将该流程编写成脚本,因此它不是手动的,但我想知道是否有更好的方法来执行此操作。

1 个答案:

答案 0 :(得分:0)

另一种方法是使公共仓库成为团队仓库的一个分支,然后您可以轻松地将发布分支从团队仓库推送到您的公共仓库。像这样的东西

git init team
cd team
  [do team development...]
git co -b release-branch     
  [do release refinements on release-branch...]
cd ..
git clone -b release-branch --bare team release.git
  [now you have a release repo that you can share with others]
cd team
git remote add release ../release.git
  [now you have added a second remote called "release"]
git co release-branch
  [do more refinements on release-branch...]
git push release release-branch
  [now you have updated the release-branch of the release repo]

我不清楚为什么你想在团队回购中保留一些东西。 如果你想在团队回购中保留大多数提交,那么你就会遇到问题:

由于git处理版本的方式,推送发布分支会将发布分支的所有祖先推送到公共存储库。这可能包括您希望仅保留在团队仓库中的许多提交。 例如。如果您将团队repo master分支合并到发布分支,那么master分支中的所有提交也将转移到公共repo。