冻结Git分支

冻结Git分支,git,branch,git-branch,Git,Branch,Git Branch,假设我有一个开发分支。我从中创建了一个功能分支来开发一个功能。一旦开发了功能,它就会合并回develop。很像这里显示的: 是否有一种方法可以冻结功能分支,以便不再对其进行提交? 不完全删除分支的原因是,查看历史记录仍然可以显示功能分支,如果需要对该功能进行调整,则有人可以从上次提交的功能创建新功能分支。您可以使用类似于gitlite或gerrit用于分支机构、标签和回购的访问控制和权限 请看这里: 只要贴上标签就行了 git tag -a frozen -m "Feature bran

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

是否有一种方法可以冻结功能分支,以便不再对其进行提交?


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

您可以使用类似于gitlitegerrit用于分支机构、标签和回购的访问控制和权限

请看这里:

只要贴上标签就行了

git tag -a frozen -m "Feature branch frozen here."
git push <remote> frozen
git标记-a冻结-m“功能分支冻结在此处。”
吉特推冷冻
当然,稍后可能会有人出现并推到分支,但是标签不应该更改,除非它被强制覆盖。您可以将遥控器配置为拒绝强制推送(如果您担心),或者


获取功能分支冻结时的状态非常简单,只需
git checkout freezed
。开发人员可以随意使用一个命令从此点开始分支:
git checkout-bfreezed

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

首先,将分支机构合并为开发部门

git checkout develop
git merge --no-ff feature_1 
然后签出分支

git checkout feature_1
git checkout develop
git branch -d feature_1
然后创建一个带有注释的标记

git tag -a -m "Freezing a feature branch that fixes.." feature_1_frozen
然后删除分支

git checkout feature_1
git checkout develop
git branch -d feature_1
执行此操作后,您将无法按名称签出分支。相反,您将能够按名称签出标记,这将使您处于分离的头部状态,这将阻止对代码的更改

现在要结束并与origin同步

推送更新和新标签

git push --tags origin develop
删除远程功能分支

git push origin :feature_1
请考虑。

我正在使用“Git Bash”控制台冻结分支:

[解决方案在2018年10月最有效]

没有Git Bash

以下是如何安装和使用Git Bash控制台:

参考:

如何冻结分支

git checkout {branch-to-keep-alive}
git merge --no-ff {branch-to-freeze} 
如果git请求合并消息,请键入它,然后使用[Esc]键,然后键入“:wq”命令保存并退出。 您必须转到VisualStudio并确保能够成功构建解决方案(使用{branch to keep alive})。 约定:创建如下标记:{branch name}\u freezed

如何将分支与主分支合并:

git checkout {your-working-branch} 
Git合并主机

打开vs并解决合并冲突(如果有)。总是重建整个事物。 现在不会有任何冲突,一切都准备好了。 Git Bash控制台:

git checkout {your-working-branch} 

需要明确的是,如果确实有人出现并在“冻结”分支上进行了提交,那么扔掉这些更改并将其设置回原来的位置就很简单了。只需
git reset——在分支上硬冻结即可。值得注意的是,这只会将其从本地存储库中删除。为了防止其他人在本地回购中获取它,您需要使用
git push:feature_1
在远程删除它。在本例中,您肯定需要一个包含分支名称的标记名,否则在将来的某个时候,当有人想要查找此状态时,您会造成混乱。因此,需要明确的是,删除分支的命令不会删除该分支的提交,它只是删除分支名称?分支是指向特定提交的指针。这里有一个很好的解释:。只要标记commit存在于gjcamann的示例中,您就应该能够达到该提交状态。我对删除分支感到矛盾,因为我认为这会让人困惑,“等等,那分支叫什么?嗯,我记不起标签名了。那是两个月前的事了。最好去挖掘。”但这只是个人偏好。你是否删除远程分支取决于你的舒适度和工作流程。米莉,你是对的。删除一个分支只会删除分支名称,所有的历史记录仍然存在——这在使用gitk.Related post时最为明显-