什么是;为';git推送';:&引用;“git remote show origin”输出中的列平均值?

什么是;为';git推送';:&引用;“git remote show origin”输出中的列平均值?,git,Git,如标题所示 对于为“git pull”配置的列本地分支:。我知道我们应该将每个分支设置为上游分支,以使git pull和git push为它们工作 但是对于为“git push”配置的本地引用:如下所示,它在这里意味着什么?我怎样才能更改其中的项目?(在.git中找不到可以更改此列项目的位置) 。。。我知道我们应该将每个分支设置为上游分支,以使git pull和git push为它们工作 这不是绝对必要的,但这是一个好主意,是的。(如果没有上游设置,则必须输入更多内容才能使每个命令正常工作,并

如标题所示

对于为“git pull”配置的列
本地分支:
。我知道我们应该将每个分支设置为上游分支,以使
git pull
git push
为它们工作

但是对于为“git push”配置的
本地引用:
如下所示,它在这里意味着什么?我怎样才能更改其中的项目?(在
.git
中找不到可以更改此列项目的位置)

。。。我知道我们应该将每个分支设置为上游分支,以使
git pull
git push
为它们工作

这不是绝对必要的,但这是一个好主意,是的。(如果没有上游设置,则必须输入更多内容才能使每个命令正常工作,并且在此处可能会出错,因此设置上游意味着更容易完成工作,并且出错的可能性更小。)

但是对于为“git push”配置的
本地引用:
如下所示,它在这里意味着什么

ref(或者reference,如果您愿意拼出来的话)是一个分支名称、标记名称或者其他类似的名称。分支名称是完全拼写以
refs/heads/
开头的ref,因此如果您有一个名为
ff
的分支,其全名是
refs/heads/ff
。出于某种原因,git没有说“为‘git push’配置的本地分支”,而是说“为‘git push’配置的本地引用”

我怎样才能更改其中的项目

您通常应该很少或根本不关注这个输出。它植根于许多年前Git的早期。但是,在某些情况下,其输出可能是相关的:

  • 如果您的本地存储库被配置为推送镜像,那么您将得到一个列表,其中列出了一个
    git推送的功能。(我不知道有谁真正使用推镜。它们似乎有点专业。)
  • 如果您将
    push.default
    配置为
    matching
    ——这是Git多年前的行为方式,它将准确地列出Git push
    的功能
  • 如果配置
    remote.remote.push
    ,它将告诉您有关此配置设置的信息
请注意,在所有情况下,为了使输出正确,在
Git remote show
告诉您将发生什么的时间和实际运行
Git push
的时间之间,其他Git上存在的分支集必须保持不变,并且它们关联的哈希ID必须保持不变

如果您没有配置任何特殊的推送设置,并且正在使用带有
push.default
默认设置为
simple
的现代Git,
Git push
在默认情况下只会实际推送当前分支,使得
Git remote show的输出不相关。在所有情况下,列出任何refspec的
git push
将使用您提供的refspec,因此
git remote show
命令的输出仍然不相关。但是,如果将
匹配
作为
推送.default
设置,和/或运行
git push
而不在命令行上指定任何refspec,则git将使用配置的
remote.remote.push
作为默认refspec,或使用匹配机制或镜像设置;在这些情况下,如果远程设备上的分支名称集没有更改,则来自
git remote show
的列表将告诉您git将要求其git设置哪些名称


(请注意,一些Linux发行版仍然附带一个真正古老的Git,其中的
push.default
设置默认为
matching
。但是,如果您的Git版本是2.0或更高版本,您的Git将默认为
simple

它应该在您的存储库中的
.Git/config
文件中,“为‘git push’配置的本地引用:”中的“git push”一词有点让人困惑,这让我觉得这是“为‘git push’配置的本地分支:”的对应词,它控制着“git push”的行为。但是,如果不在特定分支的“git pull”列中设置上游,那么“git pull”和“git push”(不指定任何refspec)都将不起作用。如果配置
匹配
模式,行为会发生变化。