Extremley初学者问题。 所以我从某人的个人资料中分配了一个git hub repo,然后将repo克隆到了我的计算机驱动器上。在git bash上它说(主)。对此目录进行提交和更改是否会影响我的个人资料上的回购?或者在Master repo上我分配了这个项目?
不确定大师所指的是什么。
谢谢,
答案 0 :(得分:1)
对于这类问题,我建议您阅读first 3 chapters of Pro Git,它将解释Git模型,并帮助您了解它的工作原理。
要回答您的问题,首先您需要了解存储库是什么,而且本身非常简单:代码库及其相关历史记录(这还包括代码库的不同版本 - “分支” - 人们可能会正在努力)。
Git被称为DVCS,即分布式版本控制系统。 “分布式”是关键 - 这意味着存储库不会回应中央机构。它还意味着每个拥有该副本的计算机上都存在完整的存储库副本。
在您的情况下,当您在GitHub上分叉回购时,您在GitHub上创建了自己的存储库副本。当您克隆到您的计算机时,您在计算机上创建了自己的的另一个副本。
大多数Git操作仅影响您的本地存储库 - 这包括提交,合并等。正好有三个Git操作(大多数人将与之交互,无论如何)涉及与其他人交互存储库:push
,fetch
和pull
。
push
与另一台带有存储库副本的计算机联系,并说“嘿,我有一个相同存储库的版本 - 我想将我在存储库中所做的更改复制到< em>你的副本“。这就是人们push
向GitHub“上传”他们的代码的原因。
要了解fetch
和pull
,您首先需要了解Git维护所谓的“远程控制” - 在您的计算机上复制远程存储库,即,其他人托管的存储库,例如GitHub上。 Git之所以这样,是因为你的存储库和一个遥控器可能会发生分歧:说你在你的存储库上工作,Jane也在她自己的存储库上工作,然后她推送到GitHub:此时,你的repo和GH repo已经分道扬..但是,遥控器永远不会偏离远程存储库本身;它只是远程仓库的旧版本,要更新它,您使用fetch
。通常,当您merge
时,您还希望fetch
从远程更改为本地分支,这就是pull
的作用:它结合了fetch
和{{1}因为这两个操作经常是彼此协调完成的。