首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当源存储库路径包含空格时,如何使用git p4将存储库从Perforce迁移到GitHub

当源存储库路径包含空格时,使用git p4将存储库从Perforce迁移到GitHub的步骤如下:

  1. 确保已经安装了git和git-p4工具。如果没有安装,可以根据操作系统的不同,使用适当的包管理器进行安装。
  2. 打开命令行终端,并进入要进行迁移的存储库所在的目录。
  3. 使用以下命令初始化git仓库,并将其与Perforce存储库关联起来:
  4. 使用以下命令初始化git仓库,并将其与Perforce存储库关联起来:
  5. 这将创建一个与Perforce存储库关联的本地git仓库。
  6. 进入新创建的git仓库目录:
  7. 进入新创建的git仓库目录:
  8. 使用以下命令创建一个新的远程仓库,并将其与GitHub关联起来:
  9. 使用以下命令创建一个新的远程仓库,并将其与GitHub关联起来:
  10. 这将在本地git仓库中添加一个名为"origin"的远程仓库,并将其与GitHub上的指定仓库关联起来。
  11. 使用以下命令将本地git仓库的提交推送到GitHub上的远程仓库:
  12. 使用以下命令将本地git仓库的提交推送到GitHub上的远程仓库:
  13. 这将把本地git仓库的"master"分支推送到GitHub上的远程仓库,并将其设置为默认的上游分支。

至此,你已经成功将存储库从Perforce迁移到GitHub。在这个过程中,git p4工具帮助你将Perforce存储库的提交转换为git提交,并将其推送到GitHub上的远程仓库。

注意:以上步骤仅适用于源存储库路径包含空格的情况。如果源存储库路径不包含空格,可以直接使用git p4工具进行迁移,无需额外的步骤。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

9.2 Git 与其他系统 - 迁移到 Git

迁移到 Git 如果你现在有一个正在使用其他 VCS 的代码库,但是你已经决定开始使用 Git,必须通过某种方式将你的项目迁移至 Git。...你将会学习如何从几个大型专业应用的 SCM 系统中导入数据,不仅因为它们是大多数想要转换的用户正在使用的系统,也因为获取针对它们的高质量工具很容易。...Mercurial 因为 Mercurial 与 Git 在表示版本时有着非常相似的模型,也因为 Git 拥有更加强大的灵活性,将一个仓库从 Mercurial 转换到 Git 是相当直接的,使用一个叫作...运行 git p4 clone 命令从 Perforce 服务器导入 Jam 项目,提供仓库、项目路径与你想要存放导入项目的路径: $ git-p4 clone //guest/perforce_software...目录,需要了解 Git 如何存储它的数据。

2K10

Git 中文参考(一)

[1] 从 Perforce 存储库导入并提交到 Perforce 存储库 git-quiltimport[1] 将 quilt 补丁集应用于当前分支 git-request-pull[1]...[1] 删除不必要的空格 配置机制 Git 使用简单的文本格式来存储每个存储库和每个用户的自定义项。...无论此变量的设置如何,双引号,反斜杠和控制字符始终都会被转义。简单的空格字符不被视为“不寻常”。许多命令可以使用-z选项完全逐字输出路径名。默认值是 true。...如果你想设置 git pull 以便它合并到从本地存储库中的另一个分支,您可以将分支..merge 指向所需的分支,并使用相对路径设置.(句点)进行 branch..remote。 branch....gc.auto 当存储库中存在大约多个松散对象时,git gc --auto将打包它们。一些 Porcelain 命令使用此命令不时执行轻量级垃圾收集。默认值为 6700。

30220
  • 代码托管从业者 Git 指南

    SVN 迁移到 Git GCC(仍处于迁移过程中)从 SVN 迁移到 Git Windows 源码(已经迁移到 Git,使用 VFS for Git 技术) VIM 迁移到 GitHub OpenJDK...Pack 文件的路径正则为 objects\/pack\/pack-[0-9a-f]{40}.pack$,当存储库使用 SHA256 哈希算法时,相应的路径正则为objects\/pack\/pack...大型存储库的优化 目前国内 IT 行业版本控制系统都在往 Git 迁移,一些大型企业,软件源码历史悠久,存储的文件各种各样,在迁移到 Git 时,体积巨大的存储库给代码托管平台带来了压力,首当其冲的问题就是从其他版本控制系统迁移到...转移到 Git 后,如果存储库包含很多的二进制文件,存储库体积巨大,那么用户拉取的时间还是会很长,一种解决方案是将不同的数据分离,也就是将体积大的二进制文件,通过 Git 扩展 git lfs 追踪,从源码中排除...当然还有一种方案就是只执行一次钩子,然后使用协调机制将钩子的结果广播到其他副本,共同进退。 存储库在不一致,或者从停机中恢复后,多写高可用依然需要考虑存储库的同步,以保证不同节点的一致性。

    1.1K30

    给女朋友讲清楚Git和GitHub的区别,这一篇就够了!

    VCS会同步版本,并确保您的更改不会与使用同一存储库的其他版本发生冲突。 当其他人保存您的代码的新版本时,VCS会保留更改的历史记录。您可以查看此历史记录,以了解谁,为什么以及何时进行了什么更改。...此外,您希望将所做的更改直接显示在计算机的项目目录中。 在处理项目时,与团队成员保持一致对于避免任何类型的冲突都是非常重要的。那么,您将如何做呢?...使用Git,无论何时提交或保存项目状态,都会获取当前文件状态的快照并为其存储引用。如果未进行任何更改或更新,则Git将存储一个到先前已经存储的文件的链接。下图展示了Git如何存储不同的版本: ?...但是,只有当您知道协作者的系统何时打开并连接到网络时,Git才有用。那么当您的团队成员不在线时您将怎么办?在这种情况下,拥有相同项目副本的第三方将很方便,您可以在其中轻松地进行更改。...从字面上看,它是Git存储库的中心,您可以在GitHub上创建一个免费帐户,就可以在其中使用它。这些帐户具有丰富的存储空间,您可以在其中存储您的存储库并建立适当的配置文件来保存所有最重要的项目。

    2.2K20

    代码托管从业者 Git 指南

    SVN 迁移到 Git GCC(仍处于迁移过程中)从 SVN 迁移到 Git Windows 源码(已经迁移到 Git,使用 VFS for Git 技术) VIM 迁移到 GitHub OpenJDK...[q3zsjcwswo.png] Pack 文件的路径正则为 objects\/pack\/pack-[0-9a-f]{40}.pack$,当存储库使用 SHA256 哈希算法时,相应的路径正则为objects...大型存储库的优化 目前国内 IT 行业版本控制系统都在往 Git 迁移,一些大型企业,软件源码历史悠久,存储的文件各种各样,在迁移到 Git 时,体积巨大的存储库给代码托管平台带来了压力,首当其冲的问题就是从其他版本控制系统迁移到...转移到 Git 后,如果存储库包含很多的二进制文件,存储库体积巨大,那么用户拉取的时间还是会很长,一种解决方案是将不同的数据分离,也就是将体积大的二进制文件,通过 Git 扩展 git lfs 追踪,从源码中排除...当然还有一种方案就是只执行一次钩子,然后使用协调机制将钩子的结果广播到其他副本,共同进退。 存储库在不一致,或者从停机中恢复后,多写高可用依然需要考虑存储库的同步,以保证不同节点的一致性。

    1.2K30

    Docker构建代码执行漏洞

    在查看文档时我注意到的第一件事是 注意:如果URL参数包含片段,则系统将使用git clone --recursive命令以递归方式克隆存储库及其子模块。...:docker 在此示例中,所有URL都引用GitHub上的远程存储库,并使用容器分支和docker目录作为构建上下文。...另一个好消息是,因为os / exec包将每个字符串视为要传递的参数,如果提供的字符串包含空格,则将其视为引用它。因此将导致执行最终命令。不是很有帮助,但是在成为漏洞的一半。...事实证明,有一个--upload-pack理想的选择:--upload-pack 当给定,并且要获取的存储库由git fetch-pack处理时,--exec=当:不存在时,git将URL解析为本地路径。由于它是一个本地路径,所提供的--upload-pack最终将被用作执行的二进制文件git fetch-pack。

    1.5K20

    GOPATH 模式怎么迁移至 Modules 模式?

    某些项目将其整个 GOPATH 目录存储在单个 Git 存储库中。其他人只是依靠 go get 获取,并期望在 GOPATH 中安装相当新版本的依赖项。...05 在模块模式下测试 迁移到 Go 模块后,某些测试可能需要进行调整。如果测试需要在程序包目录中写入文件,则当程序包目录位于 module cache 时(只读),它可能会失败。...但是,go 命令可能会通过许多不同的远程导入路径遇到同一个包含模块的存储库。...例如,golang.org/x/lint 和github.com/golang/lint 都解析为包含 go.googlesource.com/lint 上托管代码的存储库。...该存储库中包含的 go.mod 文件将其路径声明为golang.org/x/lint,因此仅该路径对应于有效模块。

    2.2K20

    Git基础知识(一)

    每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。...比如,用 Perforce,你没有连接服务器时几乎不能做什么事;用 Subversion和CVS,你能修改 文件,但不能向数据库提交修改(因为你的本地数据库离线了)。...使它包含在下次提交的快照中 Git项目的三个工作区域:Git仓库,工作目录,暂存区域 Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。...这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。 暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。...基本的Git工作流程 在工作目录中修改文件。 暂存文件,将文件的快照放入暂存区域。 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。 ?

    52530

    智能网卡系列三:P4语言的演进简述

    例如:以太网报头具有 48b 源 MAC 地址字段、48b 目标 MAC 地址字段和 16b 以太网类型字段。 解析器:数据包中的标头如何排序,它们如何识别封装的内部标头?...论文中使用的 P4 程序 DC.p4 可在 P4 github 存储库中找到,我们用它来说明 P4 的特定方面。 如图所示:描述P4语言的开发环境 这个练习给了我们几个教训。...在业务处理流程中,我们还发现最初的 P4 提案无法表达某些类型的数据包处理。其中之一是等价多路径 (ECMP),这是一种在数据中心中使用的负载平衡机制,用于在一组候选传出链路之间分散流量。...包含指令是一种相当弱的模块化形式:每个包含的 P4 文件都可以读/写任何其他包含的 P4 文件读/写的所有标头。其次,一些P4语义不精确。例如,当整数数据包字段溢出时会发生什么:它是环绕还是饱和?...如果它们被证明是广泛使用的,它们最终可能会迁移到标准的 P4 库中。总的来说,将一些 P4 结构(如动作原语)移动到库组件中将简化语言核心。

    45730

    hhdb数据库介绍(10-34)

    管理一键迁库当集群中存在某个存储节点需要进行版本升级或服务器配置升级,需要将存储节点数据迁移至新的存储节点时,可通过人工将旧存储节点的数据复制到新存储节点上并且建立好复制之后,再使用一键迁库功能对存储节点进行迁移操作...历史记录展示信息如下:数据节点:根据实际配置的迁库规则中,所选择的数据节点进行显示;迁库源存储节点:指需要进行迁库的源存储节点;迁库目标存储节点:指迁库任务对应的目标存储节点;操作开始时间:指开始执行“...使用迁库功能前需要注意以下几点:执行迁库前,需要执行一次动态加载在CPU许可证授权模式下,需提前在“配置->服务器”页面将新存储节点服务器添加到列表中,配置好SSH信息,“计算或存储节点”项选择“是”可在迁库前手动搭建源存储节点与新存储节点之间的复制关系也可通过管理平台...目前支持3种方式:删除源存储节点、将源存储节点设置为双主备库、将源存储节点设置为从库。(设置为从库时,需要选择是从主库复制还是从双主备库复制)迁库操作目标数据节点不能是单库,必须有一个从库或双主备库。...迁库条件预检测新存储节点默认与源数据节点的主库搭建主从复制关系(源主库为master)当源数据节点的非主库存储节点,处理方式选择为“双主备库”时,新存储节点与该存储节点搭建复制关系当添加多个新存储节点时

    6510

    常用Git命令和操作(github)

    如果没有远程库,可以先注册一个github账号,然后创建一个新的远程库。 当使用git clone [github url]命令复制一个远程库时,就自动与该远程库建立起了关联。...origin是远程库实际地址的别名。 git remote -v 命令,可以查看远程库的完整路径地址。 如果想要将本地的git库与远程库关联起来,可以使用git remote命令。...从远程仓库拉取修改 git pull origin [branchname] 使用git pull命令拉取时,会自动将远程仓库中的代码与本地分支进行合并。...步骤如下: 阅读项目的 CONTRIBUTING.md 文件,了解如何贡献 查看项目现有的Issues 与项目维护者交流 fork源仓库 将fork克隆到本地计算机 创建新的特性分支 将修改commit...到分支 使用git push推送到你的fork库上 新建一个Pull Request,包含你的新分支 与开发者的源库保持同步 fork库(别名origin)和源库(被fork的那个库)可能不同步,为了保持同步

    63840

    1.3 起步 - Git 基础

    在开始学习 Git 的时候,请努力分清你对其它版本管理系统的已有认识,如 Subversion 和 Perforce 等;这么做能帮助你使用工具时避免发生混淆。...比如,用 Perforce,你没有连接服务器时几乎不能做什么事;用 Subversion 和 CVS,你能修改文件,但不能向数据库提交修改(因为你的本地数据库离线了)。...已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。...Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。 工作目录是对项目的某个版本独立提取出来的内容。...这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。 暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。

    64960

    为何Google将几十亿行源代码放在一个仓库?| CSDN博文精选

    10亿文件,近百TB源代码都存放在自行开发的版本管理系统Piper中,只当项目开源且需要外部协作时,才会使用业界流行的Git。...开发人员可以将 Piper工作区存储在本地计算机上。Piper 还可以和 Git 进行有限的互操作。...对代码库的更改是单一串行的。在任何代码提交之后,其他所有开发人员都能看到并使用新代码。 在Google,通常只在发布上线时才会使用分支。发布分支是从代码库某次修改中分割出来的。...代码库规模的增长使得代码查找变得愈加困难。开发人员必须能够探索代码库,找到相关的库,并了解如何使用它们以及谁编写它们。库作者经常需要了解他们的 API 如何被使用。这需要对代码搜索和浏览工具的投资。...备选方案 随着像Git这样的分布式版本控制系统(DVCS)的普及和使用越来越多,Google 曾考虑过是否将Piper转移到Git作为其主要的版本控制系统。

    2.1K10

    聊聊用于构建微服务的工具和技术

    本文将主要关注RESTful微服务,而且,无论使用何种语言/体系结构,下面说到的大多数工具/技术都可以使用。...Crucible是Atlassian另一个支持VCS的流行工具,如Git,svn,CVS,Perforce等。Gerrit和Phabricator 是许多免费/开源代码审查工具中的两个。...这样,当我们看到日志语句时,我们知道哪个服务生成了日志事件以及生成该事件的服务的位置。现在的问题是找出导致该事件的哪些行动。我们需要一种将一系列事件追溯到源的方法,即使它意味着遍历多个服务。...因为当服务器几乎同时处理多个客户端时,日志输出通常是交错的。 服务内部:维护服务中的日志生命周期具有优势; 它完全独立于其他服务,可以选择最适合的日志策略。...从基础设施出发:在这种方法中,每个服务都将日志发送到中央服务,中央服务知道如何处理,存储或向其他日志服务器发送日志。 查看日志:简单地查看日志不是查看日志的正确解决方案。

    1.5K60

    如何在Ubuntu 14.04上使用Transporter将转换后的数据从MongoDB同步到Elasticsearch

    本教程将向您展示如何使用开源实用程序Transporter通过自定义转换将数据从MongoDB快速复制到Elasticsearch。...目标 在本文中,我们将介绍如何使用Transporter实用程序将数据从MongoDB复制到Ubuntu 14.04上的Elasticsearch 。...cd $GOPATH mkdir src pkg bin src 包含组织到包中的Go源文件(每个目录一个包) pkg 包含包对象 bin 包含可执行命令 第6步 - 安装Git 我们将使用Git来安装...克隆Transporter GitHub存储库: git clone https://github.com/compose/transporter.git 进入新目录: cd transporter 取得...结论 现在我们知道如何使用Transporter将数据从MongoDB复制到Elasticsearch,以及如何在同步时将转换应用于我们的数据。您可以以相同的方式应用更复杂的转换。

    5.4K01

    Git 和 GitHub:从入门到实践1 Git 和 GitHub 基础简介

    下面通过 Git 的一个实验来尝试理解什么是克隆了完整的代码库副本。 首先我在 GitHub 上建立了一个用于实验的公开代码库。代码库中目前只包含有少量的源文件和提交记录,如清单 1 所示。....git 目录中包含了代码库所有的存储对象和记录。...诚然,类似 SVN 和 Perforce 一类的集中式分布系统,当没有网络连接时我们依然可以对本地代码进行修改,但却无法提交代码,更不用说查询提交历史,比对版本差异。...在日常的开发工作中,修改代码只是工作的一部分,还有很大部分工作需要不断与代码库各历史版本进行交互。在集中式分布系统中,当发生网络异常时,这类工作就几乎无法进行从而很可能导致开发中断。...从这里也能看到 Git 在存储文件不同版本时,确实是存储了各历史版本全量的文件而非其增量。 注意:实际操作中也可以使用哈希值的前八位缩写,如:git cat-file -t 6d1f98e1。

    79540

    20+最好的持续集成工具

    它将立即执行的更改隔离开来,并在将更改添加到更大的代码库时同时报告。 持续集成的主要目标是在发现代码库中的任何缺陷时提供快速反馈,并尽快纠正它。它使服务器上的测试过程自动化,并向用户提供自动报告。...它还只使用一个源存储库。它使部署过程自动化,并快速构建自我测试。...开发人员或测试人员可以轻松地将Travis CI与GitHub同步并执行测试。对于每个规模的项目,它都有每种类型的私有存储库计划。...Integrity是一个基于R'uby开发的CI服务器,只与GitHub一起工作,用户可以通过使用镜像存储库使用其他具有完整性的SCM工具,这意味着GitHub镜像其他SCM,然后完整性就可以使用它。...为此,用户必须不断更新镜像存储库。 每当用户提交代码时,都会构建并运行代码的完整性。然后,它生成报告并向用户提供通知。

    3.8K30

    Git 中文参考(三)

    对这些类型的正则表达式的支持是可选的编译时依赖性。如果 Git 没有编译并支持它们,那么提供此选项将导致它死亡。 --remove-empty 当给定路径从树中消失时停止。...--unshallow 如果源存储库已完成,请将浅存储库转换为完整存储库,从而消除浅存储库所施加的所有限制。 如果源存储库很浅,则尽可能多地获取,以便当前存储库与源存储库具有相同的历史记录。...无法确定或声明具有此行为的存储库中的分支可用;拉动用户只需知道这是分支的预期使用模式。 | GIT 网址 通常,URL 包含有关传输协议,远程服务器的地址以及存储库路径的信息。...--unshallow 如果源存储库已完成,请将浅存储库转换为完整存储库,从而消除浅存储库所施加的所有限制。 如果源存储库很浅,则尽可能多地获取,以便当前存储库与源存储库具有相同的历史记录。...因此,这些提交将通过源存储库上的git gc命令删除。 安全 提取和推送协议的目的不是为了防止一方窃取不打算共享的其他存储库中的数据。

    20710

    Git 中文参考(二)

    --separate-git-dir=git dir> 不是将存储库初始化为$GIT_DIR或./.git/的目录,而是在其中创建包含实际存储库路径的文本文件。...--shared -s 当要克隆的存储库位于本地计算机上而不是使用硬链接时,会自动设置.git/objects/info/alternates以与源存储库共享对象。...但是,运行git gc是安全的,它默认使用-l选项。 如果要在其源存储库中中断使用-s克隆的存储库的依赖关系,只需运行git repack -a即可将源存储库中的所有对象复制到克隆存储库中的包中。...当已经从另一个存储库借用对象的存储库本地克隆时,也可以使用此选项 - 新存储库将从同一存储库中借用对象,并且此选项可用于停止借用。 --quiet -q 安静地操作。...仅当目录为空时才允许克隆到现有目录中。 GIT 网址 通常,URL 包含有关传输协议,远程服务器的地址以及存储库路径的信息。根据传输协议,可能缺少某些信息。

    22410

    Git 中文参考(六)

    遇到非 ASCII 消息时,7 位将失败。当存储库包含包含回车符的文件时,quoted-printable 可能很有用,但是使原始补丁电子邮件文件(从 MUA 保存)更难以手动检查。...要使用包含 SP 的源路径,必须引用该路径。 filecopy命令立即生效。将源位置复制到目标后,应用于源位置的任何将来的命令都不会影响副本的目标。...要使用包含 SP 的源路径,必须引用该路径。 filerename命令立即生效。将源位置重命名为目标后,应用于源位置的任何将来命令都将在其中创建新文件,而不会影响重命名的目标。...但是,对于某些前端,能够在更新时从当前存储库中读回数据非常有用(例如,当源材料根据要应用于先前导入的对象的补丁描述对象时)。...如果前端可以将标记绑定到源存储库,则可以通过将每个 Git 提交与相应的源修订进行比较来轻松验证导入的准确性和完整性。

    29410
    领券