Git中如何阻止多名用户同时编辑同一二进制文件?
二进制 PowerBI 文件的 Git 管理方案
冲突后是否必须丢弃全部修改
不需要完全丢弃本地改动。后提交的用户在拉取远程最新版本产生冲突后,可以将本地修改的PowerBI文件另存为独立副本,手动对照远程最新版本和本地副本的功能差异,把本地改动迁移到最新版本中,再重新提交推送即可,无需完全从头开始修改。
Git 是否支持类似 TFS 的独占签出能力
原生Git没有内置独占签出功能,这一特性确实和Git的分布式设计存在冲突:Git的本地仓库持有完整的版本历史,本地提交无需和远程仓库交互,原生逻辑上无法强制阻止用户在本地编辑任意文件。
但目前主流的Git托管平台都提供了文件锁定功能,实际使用效果和TFS的Disable shared Checkout完全一致:
- 编辑PowerBI文件前,用户先在托管平台对目标文件申请锁定
- 锁定生效后,其他用户无法将该文件的改动推送到远程仓库
- 编辑完成并推送所有改动后,用户手动释放文件锁,其他成员即可申请编辑
最优落地实践
实测可落地的团队操作流程如下:
- 首先在仓库根目录新增
.gitattributes文件,明确标记PowerBI文件为二进制不可合并,避免Git自动合并损坏文件内容:*.pbix binary *.pbit binary - 团队统一执行前置锁定规则:编辑任何PowerBI文件前,先确认文件未被其他成员锁定,自己申请锁定完成后再开始编辑,从流程上避免无效的冲突产生
- 若确实出现未锁定导致的并行编辑冲突,禁止使用Git的自动合并能力,手动对照两个版本的报表内容合并改动后再提交
- 尽量按业务域拆分PowerBI报表文件,避免单个文件承载过多报表内容,从根源上降低多人同时编辑同一个文件的概率
内容的提问来源于stack exchange,提问作者Henrik af forselles
相关产品推荐
相关产品推荐

