如何将github项目转给github外部的git回购?

如何将github项目转给github外部的git回购?,git,version-control,git-clone,git-fork,Git,Version Control,Git Clone,Git Fork,在这个项目开始之前,我从未与git合作过,所以请耐心等待 基本上,我的团队正在我们自己的git repo中启动一个新项目,该项目将有其他github项目作为依赖项。我们希望我们必须对这些依赖项进行编辑,我们希望将它们推回到我们自己的回购协议中,以便团队中的每个人都可以同步它们。我们还希望更新原始GitHub repo中的依赖项,因为我们希望最终将repo中的更改推回到GitHub。到目前为止,这有意义吗 好的,我想用下面的方式来安排我们的项目: root |- src

在这个项目开始之前,我从未与git合作过,所以请耐心等待

基本上,我的团队正在我们自己的git repo中启动一个新项目,该项目将有其他github项目作为依赖项。我们希望我们必须对这些依赖项进行编辑,我们希望将它们推回到我们自己的回购协议中,以便团队中的每个人都可以同步它们。我们还希望更新原始GitHub repo中的依赖项,因为我们希望最终将repo中的更改推回到GitHub。到目前为止,这有意义吗

好的,我想用下面的方式来安排我们的项目:

root
|- src                    <- Our code goes here
|- upstream               <- GitHub dependencies go under here
   |- GitHub project A
   |- GitHub project B
根目录

|-src您的策略将起作用,但前提是您实际上拥有上游写入权限,而您显然没有。由于只需要对依赖项进行分叉,如果将回购保留在Github而不是外部系统中是一种选择,那么我建议这样做。这是假设您提到的根文件夹本身不是git repo。如果是,请继续阅读,否则请跳到下一段

在这种情况下,您可以在Github中将上游设置为您的分叉回购,然后从那里打开一个到原始回购的PR,同时将您自己的(私有?)回购保留为
来源
远程。您还必须在repo中添加另一个上游远程设备,以从原始github repo中提取更改

如果根文件夹是git repo,那么将上游中的每个文件夹设置为a是最好的选择。这样,您就不需要维护三个不同版本的回购协议(original、fork和upstream文件夹)。相反,您可以在Github中分叉repo,然后从上游文件夹中引用分叉。对它的任何更改都可以直接添加到fork中。然后,您可以通过Github本身从fork打开对原始repo的拉取请求


我还建议您将根目录中的上游文件夹重命名为其他文件夹,因为它可能会让您对所指内容感到非常困惑。

您的策略会起作用,但前提是您确实拥有上游写入权限,而您显然没有。由于只需要对依赖项进行分叉,如果将回购保留在Github而不是外部系统中是一种选择,那么我建议这样做。这是假设您提到的根文件夹本身不是git repo。如果是,请继续阅读,否则请跳到下一段

在这种情况下,您可以在Github中将上游设置为您的分叉回购,然后从那里打开一个到原始回购的PR,同时将您自己的(私有?)回购保留为
来源
远程。您还必须在repo中添加另一个上游远程设备,以从原始github repo中提取更改

如果根文件夹是git repo,那么将上游中的每个文件夹设置为a是最好的选择。这样,您就不需要维护三个不同版本的回购协议(original、fork和upstream文件夹)。相反,您可以在Github中分叉repo,然后从上游文件夹中引用分叉。对它的任何更改都可以直接添加到fork中。然后,您可以通过Github本身从fork打开对原始repo的拉取请求


我还建议您将根目录中的上游文件夹重命名为其他文件夹,因为它可能会使您对所指内容产生混淆。

因此,您希望为项目编辑/提取上游,而不是为上游本身做出贡献。通过这种方式,您可以分叉这个github回购协议,进行更改并将它们推到分叉协议。并从github repo中获取更新。具体步骤如下:

1.分叉您想要的回购。打开github回购->单击分叉按钮->复制分叉回购URL

2.按如下方式处理您的回购:

git clone <your repo URL>
cd <your repo name>
git submodule add <fork repo URL> upstream
cd upstream
git remote add real <URL of the github repo>
# edit commit changes for the dependence
git push origin  branchname  # push changes to the fork repo
git pull real branchname     # pull the update of branchname from the github repo
git push origin branchname   # push changes to the fork repo
cd ..
git commit
git push                     #push changes to your repo
git克隆
光盘
git子模块向上游添加
上游cd
git远程添加real
#编辑相关性的提交更改
git push origin branchname#将更改推送到fork repo
git pull real branchname#从github repo中获取branchname的更新
git push origin branchname#将更改推送到fork repo
光盘
git提交
git push#将更改推送到您的回购协议

所以您希望为您的项目编辑/拉入上游,而不是为上游本身做出贡献。通过这种方式,您可以分叉这个github回购协议,进行更改并将它们推到分叉协议。并从github repo中获取更新。具体步骤如下:

1.分叉您想要的回购。打开github回购->单击分叉按钮->复制分叉回购URL

2.按如下方式处理您的回购:

git clone <your repo URL>
cd <your repo name>
git submodule add <fork repo URL> upstream
cd upstream
git remote add real <URL of the github repo>
# edit commit changes for the dependence
git push origin  branchname  # push changes to the fork repo
git pull real branchname     # pull the update of branchname from the github repo
git push origin branchname   # push changes to the fork repo
cd ..
git commit
git push                     #push changes to your repo
git克隆
光盘
git子模块向上游添加
上游cd
git远程添加real
#编辑相关性的提交更改
git push origin branchname#将更改推送到fork repo
git pull real branchname#从github repo中获取branchname的更新
git push origin branchname#将更改推送到fork repo
光盘
git提交
git push#将更改推送到您的回购协议