GitPython切换分支报past_branch引用已存在OSError问题咨询
报错根源
该错误是本地仓库已存在名为past_branch的分支导致的:GitPython的create_head方法默认不支持覆盖已存在的分支引用,重复执行创建同名分支的逻辑时就会触发这个冲突报错,和仓库托管在GitLab没有直接关联。
修复方案
根据你的使用场景任选一种即可:
- 执行创建分支逻辑前,先判断并删除已存在的
past_branch分支
repo = Repo(self.rorepo.working_tree_dir) # 存在同名分支则强制删除 if 'past_branch' in repo.heads: repo.delete_head('past_branch', force=True) # 再执行创建分支逻辑 past_branch = repo.create_head('past_branch', 'HEAD~10') self.assertRaises(git.GitCommandError, repo.heads.master.checkout) repo.heads.past_branch.checkout()
- 调用
create_head时添加force=True参数,强制覆盖已有的同名分支引用
past_branch = repo.create_head('past_branch', 'HEAD~10', force=True)
内容的提问来源于stack exchange,提问作者Doktor_DOOM
相关产品推荐
相关产品推荐

