如何阅读这个 Git 打印输出,有远程 repository/local 分支混淆

How to read this Git printout, having remote repository/local branch confusion

关于我的本地 branch/remote 存储库跟踪,我不确定这个 Git 打印输出告诉我什么。我该如何阅读?

我有 2 个本地分行:

当我输入命令git remote show origin时,我完全理解打印输出。当我键入命令 git remote show caelt 时,我不太理解它提供给我的信息。我把这些打印输出放在下面。

git remote show origin
* remote origin
  Fetch URL: https://github.com/.../UnityCSharpConceptExperiments.git
  Push  URL: https://github.com/.../UnityCSharpConceptExperiments.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)

git remote show caelt
* remote caelt
  Fetch URL: https://github.com/CAELT/SimulationAnimation.git
  Push  URL: https://github.com/CAELT/SimulationAnimation.git
  HEAD branch: master
  Remote branches:
    master    new (next fetch will store in remotes/caelt)
    melmaster tracked
  Local branch configured for 'git pull':
    melmaster merges with remote melmaster
  Local refs configured for 'git push':
    master    pushes to master    (fast-forwardable)
    melmaster pushes to melmaster (up to date)

问题 1

是线条,

`Remote branches: 
master    new (next fetch will store in remotes/caelt)`

说 'caelt' 存储库中有一个名为 'master' 的远程分支?这与我当地的分支机构不同吗,它叫做 'master?'

问题 2

为什么说下一次fetch会存入remotes/caelt? fetch 和 pull 不一样吗?在那种情况下,我不会从 'remotes/caelt' 中提取并存储在本地分支 'melmaster' 中吗?不存储在 'remotes/caelt?'

问题 3

关于台词,

 Local refs configured for 'git push':
    master    pushes to master    (fast-forwardable)
    melmaster pushes to melmaster (up to date)

这是说我的本地分支 'master' 正在推送到存储库分支 'caelt'/master' 或存储库分支 'origin/master' 吗?我希望本地分支 'master' 推送到 origin/master 中的存储库 'origin'。我不希望本地分支 'master' 推送到 caelt/master 中的存储库 'caelt'(如果 caelt 存储库中确实有一个名为 master 的分支)。我怎么知道这是指哪个大师?

问题 4

在每个打印输出中,行

HEAD branch: master

指的是我在本地驱动器中设置为 HEAD 的分支?还是指远程仓库中已经设置好的分支为HEAD?

问题一

是的。

远程分支始终与本地分支保持不同。默认情况下,远程分支位于名为 remotename/branchname.

的本地存储库中

例如,如果远程 "caelt" 有一个分支 "master",它将作为分支 "caelt/master".

存储在您的本地存储库中

问题二

git pull 只是 git fetchgit merge 的组合。所以如果你拉,首先执行标准 git fetch 。之后,如果您当前的本地分支是 "master" 并且分支 master 配置为具有上游 "caelt/master",则执行 git merge caelt/master

问题 3.

只需执行git config -l | grep branch.master,看看你得到了什么。