我需要以这样的方式将Git分支更新为新的ref,以便从客户端查看新的分支。我有一个过程,但我想要一些我没有考虑到的边缘案例的建议。
这里的用例是我们在master中开发并希望定期冻结代码并将release分支更新到master所在的位置。我们不想每次都创建一个新分支,因为我们的自动化需要更新才能使用新的分支。
通过流程,我们限制了提交可以发布的人和提交方式,(最后只能从主人那里挑选),所以不应该在发布中提交不属于主。过程永远不会是完美的,所以我想保护一点。
现在我正计划使用' reset --hard'通过这个:
git checkout master
MASTER_HEAD=`git rev-parse HEAD`
git checkout release
git reset --hard $MASTER_HEAD
git push -f origin
这有点可怕,因为如果一个提交确实进入了不在掌握中的发布它可能使它在下一次拉动时释放某人。任何强迫推动都会让我感到厌烦。
我还查看过&update-ref'但我还是不明白。
最后一种方法是一旦版本被删除,标记发布分支并删除分支。然后当代码冻结再次发生时,重新从master返回。这里的缺点是任何自动化也需要被禁用,因为分支不再存在。
答案 0 :(得分:0)
更新远程分支的方法似乎是正确的。
有一点需要注意的是,如果将新提交推送到release
并且不是之前release
的快速跟踪提交,那么如果有人将更新提交到本地,则可能存在不合理的合并{ {1}}通过通常的release
分支。
对本地git pull
分支机构的任何更新都应通过以下方式完成:
release
答案 1 :(得分:0)
我认为这可以通过将master合并到release中以更简单的方式解决。我不明白为什么会出现问题,如果有充分的理由,请告诉我们。我执行以下操作:
git checkout rebase
git merge master
git push -f origin