是否可以使用git clone
现有git p4
存储库,以便可以git p4
用于新存储库?
这里是用例:我有一个从 perforce ( git p4 clone <somepath>@all
) 克隆的完整存储库的台式机,我想在不接触 p4 服务器的情况下将其克隆到笔记本电脑(链接到它的速度很慢且滞后),并且能够提交对 perforce 的更改。git clone --depth
理想情况下,使用稀疏克隆来减少笔记本电脑磁盘的使用会很好。
在原始 git 存储库中,您应该有一个.git/refs
类似于以下的目录结构:
.git/refs/
.git/refs/heads
.git/refs/tags
.git/refs/remotes
.git/refs/remotes/p4
要获取 p4 信息,必须将以下行添加到[remote "origin"]
克隆存储库中的条目中:
fetch = +refs/remotes/p4/*:refs/remotes/p4/*
这也可以通过在克隆的存储库中运行以下命令来实现:
git config --add remote.origin.fetch '+refs/remotes/p4/*:refs/remotes/p4/*'
注意:fetch
条目与上面的目录结构匹配,因此您需要确认您的条目是否相同。在这里查看更多关于refspecs的信息。
在这一点上,这只是一个运行的问题,git fetch
从这一刻开始,所有git p4
命令都应该像往常一样工作。
不可以git p4
通过与 Perforce 结帐同步(它是一些 p4 命令的包装器)来工作,因此您还需要让 Perforce 结帐可访问。
您可以将 Git 存储库克隆到您的笔记本电脑,完成您的工作,将您的更改推送到该 Git 存储库,并git p4
在您准备好提交更改时从那里运行。