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)
只需标记它.
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
.