切分支的

This commit is contained in:
luojian 2025-08-01 15:48:16 +08:00
parent de271eb6b4
commit fc46fb68d6
1 changed files with 10 additions and 5 deletions

View File

@ -34,11 +34,16 @@ class ProjectInit(Task):
repo.git.fetch(remote_name) repo.git.fetch(remote_name)
if repo.active_branch.name != branch_name: if repo.active_branch.name != branch_name:
# 2. 创建本地分支并跟踪远程分支 # 检查本地是否已存在该分支
remote_branch_ref = f"{remote_name}/{branch_name}" if branch_name in repo.heads:
local_branch = repo.create_head(branch_name, remote_branch_ref) # 创建本地分支指向远程 # 本地分支已存在,直接切换
local_branch.set_tracking_branch(repo.remotes[remote_name].refs[branch_name]) # 设置跟踪 repo.heads[branch_name].checkout()
local_branch.checkout() # 切换到该分支 else:
# 2. 创建本地分支并跟踪远程分支
remote_branch_ref = f"{remote_name}/{branch_name}"
local_branch = repo.create_head(branch_name, remote_branch_ref) # 创建本地分支指向远程
local_branch.set_tracking_branch(repo.remotes[remote_name].refs[branch_name]) # 设置跟踪
local_branch.checkout() # 切换到该分支
self.context.local_repo_branch = repo.active_branch.name self.context.local_repo_branch = repo.active_branch.name
self.context.local_repo_commit = repo.head.commit.hexsha[:10] self.context.local_repo_commit = repo.head.commit.hexsha[:10]