git - Git push 正在删除分支
问题描述
我是 git 新手,我不明白“git push”命令如何删除另一个分支。
如下所示,有两个分支。主和测试分支。这些分支是由两个不同的人创建的。但是,用户的“git push”删除了另一个用户创建的分支。有人可以解释这怎么可能以及需要做些什么来避免这种行为。作为记录,我使用 GitLab。
编辑:附加信息:正在推送的用户配置了镜像。
解决方案
将评论总结为答案:正如您在聊天中指出的那样,推送是从镜像完成的,这就是问题的原因。
镜像意味着要保持完全同步,所以当你从镜像推送时,--prune
默认情况下它会有效。镜像并不意味着用作沙箱,它意味着用于备份或其他您希望在其他地方完整复制 repo 的情况。
从镜像克隆推送时,每个推送操作都将使用--mirror
隐含的开关完成,这会强制推送所有内容并修剪本地删除的分支。(参考:git push 手册,寻找--mirror
)
可以通过以下方式防止此类问题:
- 重要分支的分支保护(尽管这对所有分支都不实用);
- 用户教育,确保用户不会将镜像视为沙箱;
- 定期自动备份,以便在再次发生这种情况时能够恢复存储库。
推荐阅读
- c# - Not able to add parameters to make GET request with C# RestSharp client
- android - 在上传之前如何压缩图像大小这是我的代码
- azure-devops - 使用带有 UiPath 的 Azure Pipline 创建和部署 nuget 包
- python - 有没有办法将mariadb与python2.7连接起来
- ios - 滚出屏幕时如何访问 CollectionView 标题(即不可见)
- javascript - JQuery - 暂停动画/添加下一个按钮
- android - 垂直显示效果,如 RecycleView 单元格中的折叠视图
- c++ - 内联调用 always_inline 失败,Qt 中的目标特定选项不匹配
- android - 从 Android 中的 AWSAppSyncClient 删除/清除缓存策略
- keras - 从高层架构实现cnn时,如何确定每一层的步幅和填充类型?