在这个项目之前,我从未使用过git,所以请容忍我。
基本上,我的团队正在我们自己的github中启动一个新项目,它将有其他github项目作为依赖项。我们希望我们必须对那些依赖项进行编辑,然后将其推回我们自己的回购程序,这样团队中的每个人都可以同步它们。我们还希望对原始GitHub回购中的依赖项进行更新,因为我们希望最终将回购中的更改推后到GitHub。到目前为止这有意义吗?
好的,所以我想展示我们项目的方式如下所示:
root
|- src <- Our code goes here
|- upstream <- GitHub dependencies go under here
|- GitHub project A
|- GitHub project B
因此,我认为,对于每个GitHub依赖项,git clone
将GitHub回购到所需的目录,然后是git remote set-url origin <our repo url>
,然后是git remote add upstream <original github url>
。我当时以为我可以做出改变,添加,提交,并最终推动我们的回购。当需要的时候,从上游的遥控器上拉出以保持最新的东西。
不幸的是,在我完成了来自root
的root
之后,执行git status -s
并不会显示添加的GitHub目录中的文件。做一次提交和推送,把事情放到一个看似半生不熟的状态,然后我开始紧张起来,因为我不知道自己在做什么。
所以,如果有人能分享一些帮助,我会非常感激的,但请像我五岁时那样跟我说话。
发布于 2017-03-10 02:29:54
您的策略会起作用,但前提是您实际上拥有上游的写权限,但显然没有。因为只有依赖项需要分叉,如果将repos保存在Github中而不是外部系统是一种选择,那么我建议这样做。这是假设您提到的根文件夹本身不是git。如果是,请继续读下去,否则跳到下一段。
在这种情况下,您可以将上游设置为您的分叉回购,然后打开一个PR从那里到原始回购,同时保持您自己(私人?)回购作为origin
遥控器。您还必须在回购中添加另一个上游遥控器,以从原来的github回购中提取更改。
如果根文件夹是git,那么将上游的每个文件夹设置为git子模是最好的选择。这样,您不需要维护三个不同版本的回购(原始,叉子和您的上游文件夹)。相反,您可以在Github中分叉repos,然后从上游文件夹中引用分叉。对它的任何更改都可以直接添加到分叉中。然后,您可以打开一个从叉子到原始回复的拉请求,然后通过Github本身。
我还建议将根目录中的上游文件夹重命名为其他文件夹,因为它可能会使您所指的内容相当混乱。
发布于 2017-03-10 03:33:06
因此,您希望为您的项目编辑/拉上游,而不是对上游本身做出贡献。对于这种方式,您可以分叉这个github回购,进行更改,并将它们推送到分叉一。从github回购处调出更新信息。具体步骤如下:
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
https://stackoverflow.com/questions/42708859
复制相似问题