如何使用git-p4克隆分支?

Noe*_*Yap 8 git-p4

我做了:

git p4 clone //depot/path/to/project/trunk/@all project
Run Code Online (Sandbox Code Playgroud)

创建master分支project.现在我想克隆//depot/path/to/project/releaserelease分支project.怎么做的?

更新:使用--detect-branches也不起作用.它报告它正在更新两个分支(当真正有三个分支时)但git branch报告只有master存在.

cmc*_*nty 10

以下是我使用git-p4时的设置说明.它可能会有所帮助:

  • 下载p4 linux客户端.存储在文件~/bin/usr/local/binchmod +x

  • 以root身份设置git-p4

    chmod 755 /usr/share/doc/git/contrib/fast-import/git-p4
    ln -s /usr/share/doc/git/contrib/fast-import/git-p4 /usr/local/bin
    
    Run Code Online (Sandbox Code Playgroud)
  • 为git-p4定义Git全局变量

    git config --global alias.p4 '!git-p4'
    git config --global git-p4.detectRenames true
    git config --global git-p4.detectCopies true
    
    Run Code Online (Sandbox Code Playgroud)
  • 设置定义为直接'p4'用法

    export P4PORT=SERVER_NAME:PORT_NUMBER
    
    Run Code Online (Sandbox Code Playgroud)
  • 设置登录凭据

    export P4USER=USER_NAME
    export P4PASSWD=PASSWORD
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用P4'client'选择Perforce分支

    运行'p4 client'命令,仅添加您感兴趣的路径/分支.如果要命名客户端工作空间,可以在命令末尾添加可选的CLIENT_NAME参数.这将允许您在同一台计算机上使用不同的客户端定义.

    $ p4 client [CLIENT_NAME]
    
    View:
    //depot/main... //CLIENT_NAME/main...
    //depot/patch... //CLIENT_NAME/patch...
    //depot/dev... //CLIENT_NAME/dev...
    
    Run Code Online (Sandbox Code Playgroud)
  • 克隆存储库

  • 将更改提交回Perforce

    为了向Perforce提交更改,它需要一个客户端工作区,与git工作树分开.建议工作区与Perforce git工作目录位于同一文件系统中.

    此外,对工作空间路径的引用存储在Perforce服务器上,并将在p4 submit命令期间使用.

    第一步是创建本地客户端工作区.CLIENT_NAME是一个可选参数.如果您没有定义它,p4将使用您的主机名.

    p4 client [CLIENT_NAME]
    
    Run Code Online (Sandbox Code Playgroud)

    在完成p4命令之前,您将被移动到文件编辑器.这使您可以在将任何客户端设置发送到服务器之前更改它们.您必须将Root值更改为您的git树之外的新目录(例如../p4-working)此外, 在退出之前验证OwnerClient值.这些值来自您的环境,无法在编辑器中更改.

    p4 clients | grep USERNAME
    
    Run Code Online (Sandbox Code Playgroud)

    如果您没有使用默认客户端名称,则必须在本地git配置中定义它:

    git config git-p4.client CLIENT_NAME
    
    Run Code Online (Sandbox Code Playgroud)

    当您准备推送代码更改时,请使用以下命令:

    git p4 rebase
    git p4 submit
    
    Run Code Online (Sandbox Code Playgroud)

    您可以在不再使用时从服务器中删除客户端:

    p4 client -d CLIENT_NAME
    
    Run Code Online (Sandbox Code Playgroud)


cmc*_*nty 0

我相信“检测分支”依赖于您拥有与仓库中的分支路径同名的分支映射。如果不是这种情况,您可能需要在运行 git-p4 clone 命令之前使用建议的方法在空 git 存储库中定义配置值。git-p4.branchList