我有一个用于主动开发的团队git repo,以及一个“公共”repo,我们发布我们的发布代码供其他团队使用。
我不是git专家,所以我不知道这是否可以开箱即用,或者我目前正在做的事情是最好的做事方式。
我们需要做的是获取完成的发布代码,并在我们的sprint周期结束时将其发布到我们的公共仓库。我们不希望其他团队访问我们的团队回购,我们也不希望团队回购分支被推送到公共回购。
我目前正在做的是当我们有点发布或我们想要发布的任何代码时,我将公共仓库克隆到我硬盘上的文件夹中。然后我将dev repo发布分支中的所有文件复制到该文件夹中。最后,我将这些更改提交回公共仓库并删除文件夹。
我已将该流程编写成脚本,因此它不是手动的,但我想知道是否有更好的方法来执行此操作。
答案 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。