我可以将本地Git连接到其他服务器帐户吗?

时间:2020-10-25 02:20:16

标签: git

我在家工作,并且希望彼此独立地连接不同的Git。 无法确定是否有可能。 例如。为了工作,我需要使用公司的电子邮件连接公司的存储库。公司在Azure DevOps(以前的云VSTS或TFS)中使用Git 对于我个人用途,我需要在GitHub上连接我的帐户,或者在Azure DevOps中连接我的个人帐户。我这样做主要是出于学习或PoC的目的。

不需要合并两者,我只是Git的初学者,所以至少要求我指明正确的方向。我没有找到完全符合我需要的示例。

添加说明: 我想了解如何使用Git命令行或Eclipse Git插件在桌面上配置以下内容: 2个独立项目,均使用具有不同帐户的不同独立远程回购协议。

1 个答案:

答案 0 :(得分:1)

该问题的答案是肯定的:一个Git可以连接到任何其他Git。好吧,只要存在某些互联网连接,或者(如果使用git bundle,则是某种sneaker-net连接)。

对于另一个问题的答案,该问题是否有用?更加复杂。 (第三个问题(贵公司是否批准)的答案是政治性的,而不是技术性的。)

最终,

Git就是所有由哈希ID标识的 commits 。为了在单独的Git中完成有用的工作,他们需要共享实际的 commits ,从而共享 hash ID 。这就是我们使用git clone的原因:这会通过其哈希ID 复制 commits

克隆其他Git存储库时,会得到其 commits all 和其分支的 none 。 1 克隆过程会收到其分支名称,但会对其进行修改,以便它们成为您的远程跟踪名称。然后,您的Git在存储库副本中创建一个分支名称。这个分支名称指向 commit 作为他们的分支名称之一,现在是您的远程跟踪名称。

从现在开始,您将使用自己的分支名称来处理提交哈希ID,这些分支名称是根据存储在其分支名称中的哈希ID创建的,并已复制到远程跟踪中名称。现在,您有了自己的分支名称,但是所有 commits 都是共享的-除了您创建的任何新提交,以及它们在运行{{1 }}。

要使您的Git及其Git协调,您和他们需要共享大多数哈希ID和提交。因此,您的克隆或它们的克隆的克隆是好的:它们都共享大量的哈希ID,因此有很多提交。

就克隆克隆克隆?的克隆的克隆而言,这一切都很好。当您连接两个不相关存储库时,这一切都出错了,在这些存储库中,哈希ID在所有提交中根本不匹配。


1 从技术上讲,您可以从某些名称集中获得所有 reachable 提交,这些名称集取决于您。但是,通常,您通常使用其所有名称(公共可见性,分支和标记)来创建所有名称,以便获得其所有提交。您的Git复制其 tag 名称并重命名其 branch 名称,以便您共享标签名称,但拥有自己唯一的分支名称。

所有这些都可以控制,但这是Advanced Git,而不是Git 101。