比方说,我有一个发展分支。 我从这个创建一个特性分支开发功能。 一旦该功能被开发的,它被合并到发展。 很像如下所示:
有没有一种方法,我可以冻结功能分支所以没有进一步的提交可以对它进行?
其原因不是彻底删除分支,以便查看历史仍然可以显示功能分支,如果存在需要一个调整的特征做出那么可能是有人从上创建一个新的特性分支提交的以前的功能。
比方说,我有一个发展分支。 我从这个创建一个特性分支开发功能。 一旦该功能被开发的,它被合并到发展。 很像如下所示:
有没有一种方法,我可以冻结功能分支所以没有进一步的提交可以对它进行?
其原因不是彻底删除分支,以便查看历史仍然可以显示功能分支,如果存在需要一个调整的特征做出那么可能是有人从上创建一个新的特性分支提交的以前的功能。
克里斯托弗是正确的,标签将帮助你做到这一点。 我建议删除分支名称也使它有人签出分支并进行编辑有点困难。
首先,合并分支到发展
git checkout develop
git merge --no-ff feature_1
然后签出分支
git checkout feature_1
然后创建一个标签,并提供注释。
git tag -a -m "Freezing a feature branch that fixes.." feature_1_frozen
然后删除分支
git checkout develop
git branch -d feature_1
这样做了以后,你将无法通过名字签出分支。 相反,你就可以通过名字签出标签,这将让你成为一个分离的头状态,这将阻止修改代码。
现在包东西,并同步与原产...
推动更新和新标签
git push --tags origin develop
删除远程分支功能
git push origin :feature_1
只是标记它。
git tag -a frozen -m "Feature branch frozen here."
git push <remote> frozen
当然,有人可能会晚一点一起推到分支,但标签不应该改变,除非它强行推翻。 你可以配置,如果你很在意它的远程拒绝力推动,或者即使有GPG密钥签署的标记,以确保真实性。
获取当它被冻结的特性分支的状态是那么简单git checkout frozen
。 开发人员可以从该点处使用一个命令将分支: git checkout -B <new_branch> frozen
。
你可以使用类似gitolite或格里特的访问控制和权限沿着分支,标签和回购协议。
看看这里:
考虑混帐冻结作为中提到的Git -科状态(冷冻,不活动等) 。
我现在用的是“混帐击”控制台冻结分支:
不要让Git Bash的?
下面是如何安装和使用Git的Bash的控制台:
参考:
https://github.com/msysgit/msysgit/releases/
https://help.github.com/articles/set-up-git/
如何冻结分支
git checkout {branch-to-keep-alive}
git merge --no-ff {branch-to-freeze}
git checkout {branch-to-freeze}
git tag -a -m "{your-description}" {tag-for-the-branch-to-freeze}
公约:创建这样的标签:{分支名} _frozen
git checkout {branch-to-keep-alive}
git branch -d {branch-to-freeze}
git push --tags origin {branch-to-keep-alive}
git push origin :{branch-to-freeze}
如何合并一个分支主:
git checkout {your-working-branch}
Git的合并主
git checkout master
git merge development
Git的Bash的控制台: