我读过这个著名的文章。

我理解bob和clair如何与源同步,但不了解alice与bobE 211和E 112davidE 213和E 114clairE 215之间的联系。
文章说:
除了集中的推拉关系外,每个开发人员还可以从其他同事那里提取变更,组成子团队。 从技术上讲,这只意味着定义了一个名为bob的Git远程,指向Bob的存储库,反之亦然。
我是否正确地理解了两个团队(alice和david)从原点同步,但创建了自己的git服务器端点以使bob和clair可以访问
发布于 2019-12-30 07:46:34
在Git中,遥控器是一个简短的名称--嗯,只要你愿意--它代表一个URL。它所做的不仅仅是这些,但这是它最初的主要工作。
当您使用git clone创建Git存储库时,git clone命令为您添加了一个远程存储库。这个遥控器的标准名称是origin。因此,大多数Git存储库都有一个名为origin的远程存储库。
若要添加另一个远程设备,请使用:
git remote add它需要两个必需的参数:
若要查看附加到某些存储库的URL,请使用git config --get remote.name.url或git remote -v
$ git remote -v
origin ssh://git@github.com/path/to/repo.git (fetch)
origin ssh://git@github.com/path/to/repo.git (push)
$ git config --get remote.origin.url
ssh://git@github.com/path/to/repo.gitgit remote命令显示每个远程实际上可以存储两个URL。默认情况下,在.url下的主命令用于git fetch和git push。如果您使用remote.name.pushurl,设置了第二个选项,那么一个用于git push,而主一个用于git fetch。
如果爱丽丝经常要从鲍勃那里取东西,她可能会这样做:
git remote add bob <url>这里的URL可以是ssh:// URL、git:// URL、https:// URL或file:// URL,也可以是本地路径(有些人在网络共享驱动器或VM中使用这种方式)。请注意,当使用本地路径时,Git会做出文件系统特定的假设(如果可能的话),这可能会导致在使用网络共享驱动器等方面的怪异。当使用file:// URL时,Git会复制,这样如果网络崩溃,您仍然可以在本地工作。
一旦有了远程,git fetch就会获得它们的分支名称,并相应地将它们的提交复制到您的存储库中。因此,Alice通常以bob/master结束,如果Bob有一个名为feature的分支,则可能是bob/feature。但是您可以在这些不同的远程名称下设置其他设置。例如,爱丽丝可以将她的bob遥控器配置为只获取一些选定的Bob分支名称。
一旦有了一个以上的遥控器,没有参数的git fetch就变得有趣了。如果您只有一个远程origin,名为origin,那么git fetch总是以您的短名称origin从URL中提取。如果您有两个或两个以上,git fetch使用哪个遥控器?答案在文献资料中;请参阅DESCRIPTION部分。
注意,--all选项to git fetch意味着从所有遥控器中提取。除非您有多个远程定义,否则永远没有理由使用git fetch --all。
发布于 2019-12-30 05:49:22
首先,让我说一下,您显示的图表似乎不是一个很好的例子。它可能是深入了解git,但不一定是常见的用法。也就是说,对(alice,bob),(alice,david)和(david,clair)可以通过不同的方式同步,而无需经过原点。
.../.git或裸.../reponame.git目录)执行git提取。有时,我这样做是为了一个快速的本地副本,而不是从原始目录重新克隆第二个目录。.git目录的实际副本作为重新启动点。要扩展(2),假设我已经有了一个git版本目录advent-o-code-2019
cd advent-o-code-2019
cd ..
mkdir temp-dir
cd temp-dir
git init
git fetch ../advent-o-code-2019/.git master此时,temp-dir中的git状态已经创建了一个名为FETCH_HEAD的新引用,以及原始回购中的主对象的所有祖先对象。我通常会这样做:
git reset --hard FETCH_HEADhttps://stackoverflow.com/questions/59526165
复制相似问题