我从原始官方回购moodle
分出了一个回购。它有超过15个分支,master
作为分支。然后我在我的本地机器上克隆它。假设我将其克隆到project
文件夹中,并创建了大约50 folders
。
执行git remote -v
提供了以下内容:
origin https://github.com/ps/moodle.git (fetch)
origin https://github.com/ps/moodle.git (push)
upstream https://github.com/moodle/moodle.git (fetch)
upstream https://github.com/moodle/moodle.git (push)
所以,我有origin
和upstream
。
现在,我想要fork
和clone
来自其他用户的另一个分支。让我们说分支是gs
。因此,该用户将此gs
分支维护在master
的同一moodle
分支下。现在,要在我的本地计算机上克隆它,我创建了一个远程otheruser
并克隆它。
所以,现在做git remote -v
给出了以下内容:
origin https://github.com/ps/moodle.git (fetch)
origin https://github.com/ps/moodle.git (push)
otheruser https://github.com/otheruser/moodle.git (fetch)
otheruser https://github.com/otheruser/moodle.git (push)
upstream https://github.com/moodle/moodle.git (fetch)
upstream https://github.com/moodle/moodle.git (push)
我的问题是:
当我克隆分支gs
时,它创建了额外的子目录。所以,我的意思是我无法理解它是如何工作的?如果我对这些额外的子目录进行任何更改,然后将其推送到master
分支下的我的Github帐户,它会没事吗?
答案 0 :(得分:0)
只要在提交之前索引子目录中的更改,是的。但是,没有任何内容会自动编入索引。
答案 1 :(得分:0)
otheruser
是一个完全不同的git repo。它是从原来的分叉,但现在它是独立的。它可以从原始版本中提取和合并更改,但只要对原始版本进行更改,它可以做的最好就是请求它创建的原始pull in changes。
你不清楚是否有直接许可推送到otheruser
的分叉。我会回答两个案例:
如果您分叉:
当您对此otheruser
进行分叉时,您正在分叉该分叉。因此,您再次创建一个基于该回购的全新回购,并且最多可以请求更改该分支。至于推动你的前叉,绝对没问题,你想要的任何分支,你想要的任何子目录;这是你的。
如果您有直接许可:
这个很简单,只需按下otheruser
的主人就可以了,因为你有权这样做,就像你通常自己一样。