冻结的Git分支(Freezing a Git branch)

2019-06-25 10:14发布

比方说,我有一个发展分支。 我从这个创建一个特性分支开发功能。 一旦该功能被开发的,它被合并到发展。 很像如下所示:

有没有一种方法,我可以冻结功能分支所以没有进一步的提交可以对它进行?

其原因不是彻底删除分支,以便查看历史仍然可以显示功能分支,如果存在需要一个调整的特征做出那么可能是有人从上创建一个新的特性分支提交的以前的功能。

Answer 1:

克里斯托弗是正确的,标签将帮助你做到这一点。 我建议删除分支名称也使它有人签出分支并进行编辑有点困难。

首先,合并分支到发展

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


Answer 2:

只是标记它。

git tag -a frozen -m "Feature branch frozen here."
git push <remote> frozen

当然,有人可能会晚一点一起推到分支,但标签不应该改变,除非它强行推翻。 你可以配置,如果你很在意它的远程拒绝力推动,或者即使有GPG密钥签署的标记,以确保真实性。

获取当它被冻结的特性分支的状态是那么简单git checkout frozen 。 开发人员可以从该点处使用一个命令将分支: git checkout -B <new_branch> frozen



Answer 3:

你可以使用类似gitolite格里特的访问控制和权限沿着分支,标签和回购协议。

看看这里:

  • https://stackoverflow.com/a/10897484/462233
  • http://sitaramc.github.com/gitolite/


Answer 4:

考虑混帐冻结作为中提到的Git -科状态(冷冻,不活动等) 。



Answer 5:

我现在用的是“混帐击”控制台冻结分支:

不要让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中要求提供一个合并消息,输入它,然后用[Esc]键,然后输入“:WQ”命令来保存并退出。

你必须去到Visual Studio,并确保您可以成功构建解决方案(用{分支到保活})。

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的合并主

打开VS和解决合并冲突,如果有任何。 始终重建整个事情。

git checkout master
git merge development

不会有现在的任何冲突,一切都被订走。

Git的Bash的控制台:



文章来源: Freezing a Git branch