复制Azure Git仓库时,如何避免Azure Board用户故事的提交关联重复?
解决Azure Git仓库复制后提交关联原工作项的问题
问题原因
Azure DevOps会自动识别提交消息中的工作项引用(如#123、AB#123格式的标记),同时如果新旧仓库属于同一Azure DevOps组织,系统会基于提交哈希自动关联对应工作项,导致原用户故事同时出现新旧仓库的提交引用。
解决方案
方案一:批量修改提交消息移除工作项引用后推送
如果不想保留新仓库提交与原工作项的关联,可通过修改提交消息中的工作项标记,避免Azure DevOps自动关联:
- 先备份本地仓库,防止操作失误。
- 安装
git filter-repo(Git官方推荐的批量修改工具,替代旧的git filter-branch)。 - 批量替换提交消息中的工作项引用:
- 若工作项标记为
AB#前缀(如AB#123),执行:git filter-repo --message-callback 'return re.sub(r"AB#\d+", "", message)' - 若为普通
#前缀(如#123),执行(避免误删其他含#的内容):git filter-repo --message-callback 'return re.sub(r"\s#\d+", "", message)'
- 若工作项标记为
- 将修改后的分支强制推送到新仓库:
git push MyNewRepo myoldmainbranch --force
方案二:断开新仓库与原工作项看板的关联
若新仓库无需关联原项目的看板,可通过Azure DevOps设置阻止自动关联:
- 进入新仓库的设置页面,找到「工作项关联」相关选项,关闭自动关联功能,或取消与原项目看板的绑定。
- 若已推送的提交已生成关联,需手动打开每个受影响的用户故事,在「开发」标签页删除新仓库的提交引用。
方案三:使用Azure DevOps官方导入功能
Azure DevOps的仓库导入工具支持选择是否保留工作项关联:
- 进入新Azure DevOps项目的仓库页面,选择「导入仓库」。
- 输入原仓库URL,在高级选项中勾选「不关联工作项」(或对应选项)。
- 完成导入后,新仓库的提交不会关联原用户故事。
内容的提问来源于stack exchange,提问作者MakePeaceGreatAgain
相关产品推荐
相关产品推荐

