如何将从 perforce 克隆的本地仓库合并到现有的 GitHub 仓库中
How to merge local repo cloned from perforce into an existing GitHub repo
我在 GitHub 上有一个私人仓库。我的计算机上有它的本地工作区。
我在 Perforce 中有一些 depo 流,我用 "git p4 clone" 克隆到我计算机上的本地 repo 工作区中。原因是为了保留 Perforce 的历史。
现在我想将从 Perforce 克隆的本地存储库推送到 GitHub 上现有的私有存储库(我在开头提到的那个)。
谁能指导我步骤?
到目前为止我尝试了:
git p4 clone "my-perforce-stream-path"
然后我尝试了:
git remote add origin "my-private-github-repo-url"
git push -u origin master
我收到一个错误:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'my-private-github-repo-url'
您首先需要从 perforce 存储库拉取到私有 github 存储库。一旦你这样做,并且 github 仓库与 perforce 同步,你就可以将你的主分支推送到 github 仓库。按照以下两种选择之一完成此操作:
选项 1
创建 github 存储库的本地副本:
git clone your-github-repo.git
添加遥控器:
git remote add p4 "perforce-repo-path"
将更改从 p4
远程拉到本地:
git pull p4 branch-name
3.1。 注意:如果两个 repos,github 和 perforce 都不相关(意味着它们包含彼此不相关的历史记录)你可能最终会出错,因为 git不会让您将一个分支从不相关的回购合并到另一个分支。您可以使用 --allow-unrelated-histories
选项覆盖它,如下所示:
git pull p4 branch-name --allow-unrelated-histories
最后,您应该能够将本地更改推送到 github:
git push -u origin master
备选方案 2
在 perforce 仓库中添加 github 远程:
git add remote github url.git
接下来,确保将 github 远程分支的历史记录拉入本地 perforce 存储库(在推送之前同步它们):
git pull github <branch-name> --allow-unrelated-histories
(--allow-unrelated-histories
帮助您防止在两个回购协议包含不相关的 changes/histories 时收到错误消息)
然后,将 perforce 仓库中的分支推送到 github 远程:
git push -u github <branch-name>
注意:如果您对历史记录有任何疑问,可以在此处使用相同的 --allow-unrelated-histories
标记。
我在 GitHub 上有一个私人仓库。我的计算机上有它的本地工作区。
我在 Perforce 中有一些 depo 流,我用 "git p4 clone" 克隆到我计算机上的本地 repo 工作区中。原因是为了保留 Perforce 的历史。
现在我想将从 Perforce 克隆的本地存储库推送到 GitHub 上现有的私有存储库(我在开头提到的那个)。
谁能指导我步骤?
到目前为止我尝试了:
git p4 clone "my-perforce-stream-path"
然后我尝试了:
git remote add origin "my-private-github-repo-url"
git push -u origin master
我收到一个错误:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'my-private-github-repo-url'
您首先需要从 perforce 存储库拉取到私有 github 存储库。一旦你这样做,并且 github 仓库与 perforce 同步,你就可以将你的主分支推送到 github 仓库。按照以下两种选择之一完成此操作:
选项 1
创建 github 存储库的本地副本:
git clone your-github-repo.git
添加遥控器:
git remote add p4 "perforce-repo-path"
将更改从
p4
远程拉到本地:git pull p4 branch-name
3.1。 注意:如果两个 repos,github 和 perforce 都不相关(意味着它们包含彼此不相关的历史记录)你可能最终会出错,因为 git不会让您将一个分支从不相关的回购合并到另一个分支。您可以使用
--allow-unrelated-histories
选项覆盖它,如下所示:git pull p4 branch-name --allow-unrelated-histories
最后,您应该能够将本地更改推送到 github:
git push -u origin master
备选方案 2
在 perforce 仓库中添加 github 远程:
git add remote github url.git
接下来,确保将 github 远程分支的历史记录拉入本地 perforce 存储库(在推送之前同步它们):
git pull github <branch-name> --allow-unrelated-histories
(--allow-unrelated-histories
帮助您防止在两个回购协议包含不相关的 changes/histories 时收到错误消息)然后,将 perforce 仓库中的分支推送到 github 远程:
git push -u github <branch-name>
注意:如果您对历史记录有任何疑问,可以在此处使用相同的
--allow-unrelated-histories
标记。