git-p4——对它的工作原理有什么好的解释吗

git-p4——对它的工作原理有什么好的解释吗,git,perforce,git-p4,Git,Perforce,Git P4,如果您远程使用perforce并希望拥有git惊人的速度来跟踪差异,以下是解决方案: 然而,我注意到以下几点: 严格按照说明操作 导入一棵大树而不获取历史记录可能需要一段时间 在大型树上,第一次提交将花费很长时间,因为此命令将同步整个树 如果您做了一个不想发送给perforce的提交,那么必须执行“git-rebase-i”并删除有问题的提交记录。您不能先“gitp4提交”,然后“p4还原”您不想发送的文件 如果你把事情搞砸了,事情会变得非常混乱 这就是我的问题对于git-p4如何使用远程存储库

如果您远程使用perforce并希望拥有git惊人的速度来跟踪差异,以下是解决方案:

然而,我注意到以下几点:

  • 严格按照说明操作
  • 导入一棵大树而不获取历史记录可能需要一段时间
  • 在大型树上,第一次提交将花费很长时间,因为此命令将同步整个树
  • 如果您做了一个不想发送给perforce的提交,那么必须执行“git-rebase-i”并删除有问题的提交记录。您不能先“gitp4提交”,然后“p4还原”您不想发送的文件
  • 如果你把事情搞砸了,事情会变得非常混乱
  • 这就是我的问题对于git-p4如何使用远程存储库有什么好的解释吗?对热门git-p4作品的总体解释是什么?


    git-p4不适合心脏虚弱的人。我知道你真的需要很好地理解git才能很好地使用它。

    我偶尔会使用git-p4,因为我经常出差,而且与办公室的联系并不总是很好。我的理解是,尽管我没有深入探讨,但git-p4为您维护了一个Performce工作区。无论何时执行git p4重基,基本上都是将代码同步到工作区中,然后git-p4将代码作为新提交重放到git存储库中。每当您执行git p4提交时,它都会将一系列修补程序重放到您的Perforce工作区中,并使用Perforce变更列表提交这些修补程序

    我想您可以将其视为使用Perforce服务器作为远程分支,但实际上这是一个非常有限的实现


    如果你有更详细的问题,我会尝试在Perforce论坛上发帖。办公室里有几个人对git-p4进行了详细的研究,可能会提供帮助。

    git项目源代码中的
    文档/git-p4.txt
    中有更多信息

    git-p4维护一个refs/remotes/p4分支以镜像远程Performce服务器。 默认情况下,
    git-p4 clone
    git-p4 sync
    更新此遥控器,并根据它重新设置主机的基础

    git-p4 submit
    需要配置一个额外的本地目录作为performe客户端根目录,以供
    p4 submit
    使用

    git-p4 sync/clone
    将在相应的git提交消息中记录每个Perforce变更列表编号。例如:

    [git-p4:depot路径=“//depot/test/”:change=51]

    使用这些变更列表符号,
    git-p4 sync
    获取Perforce服务器上尚未提交到git的变更列表,将变更列表符号添加到每个新的git提交消息中

    git-p4 submit
    首先确定新的本地git提交-那些没有
    [git-p4:…]
    的提交。 使用Perforce客户端本地工作区,它同步Perforce文件,并在调用
    p4 submit
    之前,使用
    git apply
    在未提交的git提交上应用从
    git format patch
    获取的补丁

    然后
    git-p4 submit
    调用
    git-p4 sync
    根据刚刚更新的performe remote更新ref/remotes/p4分支

    最后,
    git-p4 submit
    将针对更新后的远程服务器在主分支上调用
    git-rebase
    。这将导致提交相同的git树,但编辑的提交消息包含
    [git-p4…]
    变更列表符号

    如何在git中保存一些修改过的文件,而不将它们发送到p4

    git-p4 submit
    将提交所有分支提交。使用常用的git工具来组织您选择提交给Perforce的分支的更改

    关于“哪些提交等待提交给Performance?”

    任何可以接受修订范围(请参阅)的命令都应该可以工作,您只需将p4 remote作为该范围的端点。例如:

    • git日志远程/p4/master..master
    • git-diff-remotes/p4/master..master

    我倾向于使用
    show branch
    快速查看我的分支的状态,在这种情况下
    git show branch——所有这些都可以使用。

    也许您会发现这个替代工具很有趣:

    这是原始git-p4实用程序的一个分支,支持Perforce streams,但此时只有单向同步可以工作。

    第一次在8年内发生了很大变化:请参阅

    • 您可以在git p4 submit上指定单个提交或一系列提交
    • 您可以使用
      --shelve
      --update shelve
      来搁置更改,而不是提交更改
    • 您可以将标签从p4导入Git
    • 您可以将标记作为p4标签从Git导出
    但是关于“它是如何工作的”,现在有一些助手:

    • 您有一个详细的模式,可以帮助您查看正在发生的事情
    • 您有一个干运行模式,它显示提交给p4的内容;不要更改Git或p4中的状态
    使用Git 2.25(2020年第1季度),将显示使用情况

    参见(2019年12月16日)by.
    (于2020年1月2日合并)

    :解析选项失败时显示详细帮助 签字人:本·基恩

    当用户向
    git-p4
    提供无效参数时,程序会报告故障,但不会提供正确的命令语法

    向命令行参数解析器添加异常处理程序,以在引发异常时显示命令的特定命令行参数语法。
    重新显示异常,以便保留当前行为


    我想说的是,为了更好地使用Git,你需要更好地理解Git,而不管你是否与perforce在另一端进行交互。Git-p4如何知道需要提交给p4的内容?如何修改wh的列表