这些 git 命令的含义是什么?

What is the implication of these git commands?

我有一个示例 jenkins 管道脚本,其中包含用于构建、测试等的部分,然后是一个以这些 git 命令开头的发布部分:

git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
git config branch.master.remote origin
git config branch.master.merge refs/heads/master

我是 git 新手所以有人可以解释一下他们在做什么吗?它们出现在 sbt 发布插件用于创建新版本之前(类似于 maven 发布插件)。

谢谢。

这些命令在当前工作目录的 .git/config 配置文件中添加或修改行,您可以通过 运行 git help config.[= 找到有关这些设置和其他设置的文档。 20=]

简而言之,这些特定的配置设置是配置 Git 所需的一部分,以便 git pull 将从 origin 远程获取所有分支,然后,提供当前本地分支是 master,尝试将远程的 master 分支合并到本地 master 分支。缺少的部分是 origin 遥控器的定义,必须在别处配置。

请注意,当您克隆远程存储库时,这些是 Git 自动设置的默认设置。 (尝试一下:对任何远程存储库执行 git clone,然后检查您的 .git/config 文件,您会发现这些设置的等效项。)因此,看起来这些命令可能只是确保这些默认值在 运行 发布脚本之前正确设置。