冻结Git分支

mil*_*lie 22 git branch git-branch

假设我有一个开发分支.我从中创建了一个功能分支来开发一个功能.一旦开发了该功能,它就会合并回到开发中.非常像这里显示的:

在此输入图像描述

有没有办法可以冻结功能分支,以便不再进行进一步的提交?

不彻底删除分支的原因是,查看历史记录仍然可以显示功能分支,如果需要对功能进行调整,则可能有人从上次提交时创建新功能分支以前的功能.

gjc*_*ann 19

克里斯托弗是对的,标记将帮助你做到这一点.我建议删除分支名称,以使某人更难以签出分支并进行编辑.

首先,将分支合并到开发中

git checkout develop
git merge --no-ff feature_1 
Run Code Online (Sandbox Code Playgroud)

然后结帐分行

git checkout feature_1
Run Code Online (Sandbox Code Playgroud)

然后使用注释创建标记.

git tag -a -m "Freezing a feature branch that fixes.." feature_1_frozen
Run Code Online (Sandbox Code Playgroud)

然后删除分支

git checkout develop
git branch -d feature_1
Run Code Online (Sandbox Code Playgroud)

执行此操作后,您将无法按名称签出分支.相反,您将能够按名称签出标签,这将使您进入一个分离的头状态,这将阻止对代码的更改.

现在包装起来并与原产地同步......

推送更新和新标签

git push --tags origin develop
Run Code Online (Sandbox Code Playgroud)

删除远程功能分支

git push origin :feature_1
Run Code Online (Sandbox Code Playgroud)


Chr*_*her 8

只需标记它.

git tag -a frozen -m "Feature branch frozen here."
git push <remote> frozen
Run Code Online (Sandbox Code Playgroud)

当然,有人可以稍后来到分支机构,但标签不应该改变,除非它被强行覆盖.如果您担心,可以将遥控器配置为拒绝强制推送,或者甚至使用GPG密钥对标签进行签名以确保真实性.

获取功能分支冻结时的状态非常简单git checkout frozen.开发人员可以使用一个命令随意分支:git checkout -B <new_branch> frozen.