fix git checkout

This commit is contained in:
zyc 2026-02-24 17:10:16 +08:00
parent f9c84b211b
commit 33db841592

View File

@ -53,11 +53,19 @@ class GitManager:
logger.error(f"配置 remote 失败: {e}") logger.error(f"配置 remote 失败: {e}")
def pull(self) -> bool: def pull(self) -> bool:
"""拉取最新代码""" """拉取最新代码(自动切回 main/master 分支)"""
if not self.repo: if not self.repo:
return False return False
try: 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 = self.repo.remotes.origin
origin.pull() origin.pull()
logger.info("代码拉取成功") logger.info("代码拉取成功")