我有项目 A。项目 A 在 perforce 和 github( Business decision) 中。它们都不同步。我看到我可以使用 git-p4 工具 http://git-scm.com/docs/git-p4 将 git 更改提交到 perforce。问题是它的第一个指令说是:
git p4 clone//depot/path/project
此命令将在 git hub中创建新的存储库。我不想这样。我希望我现有的 perforce depot 连接到退出的 github 存储库,然后将文件从 github 同步到 perforce。可能吗?
No. git p4
基本上只是Perforce的包装器。它读取对 Git 存储库的更改,并发出正确的 Perforce 命令来提交它们(反之亦然 - 它会读取对 Perforce 签出的更改,并发出正确的 Git 命令以相应地更新 Git 存储库)。因此,您需要有一个Perforce签出和一个可以与Perforce签出通信的本地Git存储库。
从根本上说,同一个项目有两个不同的历史,所以你需要找到一些方法来调和它们。
git-p4 可以从 Perforce 同步(创建一个新的 git 存储库),然后你可以添加一个指向 GitHub 的新遥控器,并从那里同步分支。
但是,这无助于解决合并历史记录的问题。
您可以:
- 使用 Perforce,重写 github 历史
- 使用Github历史记录,并让您的perforce管理员/Perforce(公司)重写您的Perforce历史记录。
2 可能(在政治上)是不可能的。从技术上讲可能是不可能的。Perforce旨在防止历史记录被更改。
1 将破坏从您的 GitHub 存储库克隆的任何人。
你可能想看看 Git Fusion,它是 Git 和 Perforce 之间的桥梁:
http://www.perforce.com/git-fusion
此知识库文章提供了一个示例,说明您可能希望如何使用 Perforce 和公共 Git 存储库中的项目:
http://answers.perforce.com/articles/KB/7481/
希望这有帮助!