From 33db8415927e186f79c2d41957665474b7ca3054 Mon Sep 17 00:00:00 2001 From: zyc <1439655764@qq.com> Date: Tue, 24 Feb 2026 17:10:16 +0800 Subject: [PATCH] fix git checkout --- repair_agent/agent/git_manager.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/repair_agent/agent/git_manager.py b/repair_agent/agent/git_manager.py index 9f7d47a..6b6a8da 100644 --- a/repair_agent/agent/git_manager.py +++ b/repair_agent/agent/git_manager.py @@ -53,11 +53,19 @@ class GitManager: logger.error(f"配置 remote 失败: {e}") def pull(self) -> bool: - """拉取最新代码""" + """拉取最新代码(自动切回 main/master 分支)""" if not self.repo: return False - + try: + # 先切回 main/master,避免在无 upstream 的 fix 分支上 pull 失败 + current = self.repo.active_branch.name + if current.startswith("fix/"): + main_name = "main" if "main" in self.repo.heads else "master" + if main_name in [h.name for h in self.repo.heads]: + self.repo.heads[main_name].checkout() + logger.info(f"从 {current} 切回 {main_name}") + origin = self.repo.remotes.origin origin.pull() logger.info("代码拉取成功")