我正在克隆一个最初由git-p4生成的repo。git-p4使用“remotes/p4/master”分支,我想跟踪该分支。我如何告诉正在克隆该repo的git也要跟踪“remotes/p4/master”分支?这样我就可以检出“origin/remotes/p4/master”或其他分支了。
git clone ~/p4/git/services/info-service.git
cd info-service
git config --add remote.origin.fetch +refs/remotes/p4/*:refs/remotes/origin/p4/*
git fetch origin
比如在 info-service.git
中,你可以获取 refs/remotes/p4/release/1.1
并将其变为你本地克隆仓库中的 refs/remotes/origin/p4/release/1.1
,然后使用 git checkout -b r1.1-fixes origin/p4/release/1.1
基于此创建一个分支。
话虽如此,在我的Perforce副本仓库中,我会创建实际的分支以映射所有p4远程分支,这样可以避免上述所有操作。它还给了我机会从p4路径前缀到git分支名称进行修改(因此p4/main
变成了 master
,p4/release/1.1
变成了r1.1
等)。
我使用自己的p4-to-git复制工具,但你也可以通过循环 p4 远程引用使用git for-each-ref
并使用git update-ref
来设置本地分支。