我终端中的Git branch和remote与我在github中看到的不同

我终端中的Git branch和remote与我在github中看到的不同,git,repository,branch,git-remote,Git,Repository,Branch,Git Remote,我正在学习git,它让我感到困惑。我对分支、远程存储库和目录感到困惑。其他人在我的本地机器上克隆了一个代码。当我执行git分支时我看到以下三个分支: ChrisMerge * EliasWork develop 当我使用git remote时,我会得到这些 chris origin prime 我想它们可能是目录,但我找不到任何名为chris,develop的目录。那么代码存储在哪里呢?因为他们每个人的代码都不一样 在我在github.com上的git帐户上,我想也许我可以在那里看到其中一个

我正在学习git,它让我感到困惑。我对分支、远程存储库和目录感到困惑。其他人在我的本地机器上克隆了一个代码。当我执行
git分支时
我看到以下三个分支:

ChrisMerge
* EliasWork
develop
当我使用git remote时,我会得到这些

chris
origin
prime
我想它们可能是目录,但我找不到任何名为chris,develop的目录。那么代码存储在哪里呢?因为他们每个人的代码都不一样

在我在github.com上的git帐户上,我想也许我可以在那里看到其中一个名字。但在分支下还有其他名称,如,
devel,ver,
我需要有人把这一点一劳永逸地告诉我。

Git remote只是Git用来存储数据的一个简短名称。它不是目录。运行
git remote
将列出git知道的所有远程名称,这基本上就是
git config--list
将列出以
remote开头的所有名称。
:您将看到:

remote.chris.url = <some url>
remote.origin.url = <another url>
remote.prime.url = <yet another url>
等等。正是这些线的存在创造了所谓的远程。
fetch
行特别告诉您的git应该从其他git复制什么,
url
行告诉您的git如何联系其他git


相反,分支名称是Git用来存储一个特定提交哈希ID的名称。这个名称由您决定,它不受任何其他Git控制,当您要求Git创建分支名称时,它由您控制。通常,如果名为
原点的遥控器
有一个名为
主机
的分支,您的Git将记住该名称为
origin/master
,您可能希望您的分支名称
master
记住
origin/master
,这是Git通过
remote.origin.url
在Git上调用的
master

Git调用这些名称-
origin/master
等远程跟踪名称或远程跟踪分支名称。它们实际上不是分支名称,它们不同于(但显然与)远程设备。它们用于Git记忆(“跟踪”)远程上的分支,这就是它们被称为远程跟踪名称的原因


通常,这一切都不会让人感到特别困惑,因为他们的Git存储库中的大多数用户只有一个名为
origin
,所以他们的
master
将与
origin/master
一起使用。但就你而言,你有三个遥控器。通过
prime
命名的URL上的Git可能也有一个
master
,您的Git将通过
prime/master
记住它。现在您有了
origin/master
prime/master
。如果要使用这些工具,通常建议使用名为
master
的分支机构使用
origin/master
,使用名为
master
的分支机构使用
prime/master
。但这是注定要失败的,所以您需要使用其他一些本地分支名称,这就是事情变得混乱的地方

幸运的是,正如我们刚才看到的,您自己的分支名称不必与某个远程服务器的名称匹配。您可以有一个类似于
EliasWork
的分支,该分支连接到或未连接到您的任何远程跟踪名称。限制是每个分支名称只能有其中一个集合。Git将其称为分支的上游


更令人困惑的是,当我们将远程跟踪名称设置为分支的上游时,Git说该分支现在正在“跟踪”该远程跟踪名称。现在我们有:

  • 一个分支机构名称,这是我们为自己编的本地名称
  • 这是跟踪(作为一个独立的词)由…组成的上游
  • 远程跟踪名称或远程跟踪分支名称,作为一个完整的短语,它实际上是一个本地名称
  • 它能记住远程计算机上显示的分支名称
  • 其中,remote是其他一些Git存储库的URL的简称(whew!)
请注意,这会不断重复使用不同的单词,并使它们具有不同的含义!就术语而言,它还有很多不足之处

在任何情况下,这些都不是您将在工作树中看到的目录,而工作树正是您进行工作的地方。(Git有时会使用这些名称在
.Git
中创建一些目录,但存储存储库本身的
.Git
目录在技术上并不包括在您的工作树中。)

Git remote只是Git存储一些数据的短名称。它不是目录。运行
git remote
将列出git知道的所有远程名称,这基本上就是
git config--list
将列出以
remote开头的所有名称。
:您将看到:

remote.chris.url = <some url>
remote.origin.url = <another url>
remote.prime.url = <yet another url>
等等。正是这些线的存在创造了所谓的远程。
fetch
行特别告诉您的git应该从其他git复制什么,
url
行告诉您的git如何联系其他git


相反,分支名称是Git用来存储一个特定提交哈希ID的名称。这个名称由您决定,它不受任何其他Git控制,当您要求Git创建分支名称时,它由您控制。通常,如果名为
原点的遥控器
有一个名为
主机
的分支,您的Git将记住该名称为
origin/master
,您可能希望您的分支名称
master
记住
origin/master
,这是Git通过
remote.origin.url
在Git上调用的
master

Git调用这些名称-
origin/master
等远程跟踪名称或远程跟踪分支名称。他们是