我使用几本书进行编码研究。他们中的许多人都有链接回GitHub的编码示例,例如:https : //github.com/ehmatthes/pcc_2e/
如果我想对代码进行更改,例如添加注释,对代码进行更多实验等以供个人使用,我应该分叉或克隆存储库以便将更改保存在云中吗?
如果克隆,似乎只有提交并推送到分支才能将更改保留在GitHub中,这是我不想做的,因为我没有修复或增强任何功能。
但是,如果我分叉,我相信分叉意味着我也想回馈,所以我不确定这是否正确。我知道我可以提交并推送到fork,而无需向原始请求执行拉取请求,但是我不确定从概念上讲这是否是正确的方法,因为Forks仍然是对原始作者的潜在代码贡献。
TLDR:我想从GitHub存储库中获取最新的课程代码,使用某些文件中的代码,并在GitHub上更改我的notes \ code。如何满足GitHub中的这些需求?
Github让人感到困惑,但事实是它们是同一回事:fork是一个克隆。Git本身对分叉一无所知,这是Github发明的概念。Forks帮助简化了Github设计使用的集中式工作流程,但这些工作流程并未内置到git本身。
从本地系统上的克隆的角度来看,唯一的区别将是远程“ Origin”的分配,即。您从中克隆的仓库。它将确定在使用等等时发生的情况git push
,git pull
git fetch
而无需显式命名远程URL。
如果您直接ehmattes/ppc_2e
在本地系统上克隆存储库,则git会将其指定为Origin。当你git pull
,它将从ehmattes/ppc_2e
。如果您使用git push
,它将尝试将您的更新写入ehmattes/ppc_2e
(很可能会被拒绝)。
如果您在Github(milesMorales/ppc_2e
)中创建了一个fork,然后在本地克隆了fork,则该fork将成为远程“ Origin”。pull
和push
操作将使用你的叉子。但是,Github上存在的fork实际上只是原始存储库的克隆,因此您的本地副本实际上是克隆的克隆。好处是您可以在本地进行所需的任何更改,然后将其推回云(github),在此将它们写入到您的派生副本中。不利之处在于,如果ehmattes
对课程内容进行了更改,除非您更新分叉,否则您将看不到它。
可以想像,如果你想你做出的更改milesMorales/ppc_2e
要合并到ehmattes/ppc_2e
,你可以使用GitHub上,以提高从拉入请求milesMorales/ppc_2e
为ehmattes/ppc_2e
1。
有几种方法可以解决任何一个选项的弊端,主要涉及在本地副本上使用多个远程配置。但这可能超出了原始问题的范围。
我想从GitHub存储库中获取最新的课程代码,在某些文件中使用该代码,并在GitHub上更改我的notes \ code。如何满足GitHub中的这些需求?
您想在Github上创建一个fork,然后在本地系统上克隆fork,然后在本地系统上进行工作。git push
会将您的更改写入您的分叉副本。请注意,除非您手动更新fork,否则您将看不到作者进行的任何更新。
1:拉取请求是另一个GitHub概念。“ fork”是一个包装git clone
,而“ pull”请求是一个包装git merge
(或git rebase
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句