git配置有什么作用?

时间:2013-11-24 22:11:16

标签: git merge branch master git-config

我是git的新手,我正在通过tutorial设置子模块。我正在尝试理解所有命令并挂在下面的行上。

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

有人可以解释git配置的作用以及如何解释

branch.master.remote
branch.master.merge

https://git.wiki.kernel.org/index.php/GitSubmoduleTutorial

2 个答案:

答案 0 :(得分:1)

为了能够将更改从上游分支合并到您的本地分支之一,您需要两条信息: - 上游分支所在的遥控器。 - 上游分支的名称。

使用该功能,一旦您检出目标本地分支,就可以发出以下命令:

git pull <upstream_remote> <upstream_branch>

进行预期的合并。

最常见的情况是,将远程源的主分支合并到本地主分支中,然后是:

git pull origin master

但是不得不一次又一次地打字。所以,你可以保存一些打字,告诉git记住这两个信息(远程和分支),这样你就可以只输入git pull

这就是你git config命令正在做的事情。记住,对于您的本地分支 master ,需要两条信息:

git config branch.master.remote origin

“拉入主人时,请使用远程原点”

git config branch.master.merge refs/heads/master

“当拉入主人时,使用远程分支主人”

如您所见,概念很简单。这只是语法有点复杂。 最后两个注释:

  • refs / heads / master 是远程仓库所见的远程分支的名称
  • refs / heads / master 是通常称为 master 的规范形式。我们在配置的某些位置使用规范名称。

最后,作为@VonC sai,我们现在可以通过更精细/简单的命令来做到这一点,但我认为值得知道git在幕后做了什么,并且在这种情况下git config命令很好地暴露它。 / p>

答案 1 :(得分:0)

默认情况下,git config会修改当前git仓库的本地配置。
(有三个级别的配置:system, global and local

您提到的git config branch.master.xxx用于为您的本地分支机构设置 upstream branch ,以便您的本地仓库知道推送到哪里以及在哪里推送来自主分支。

That tutorial已经过时了,nowadays (1.8.0+), we would use

git branch -u origin/master master

这会修改相同的配置文件,但您不必知道分支配置语法。

您可以使用git branch审核所有上游分支:

git branch -avv

第一次推送时必须指定上游分支,如“Why do I need to explicitly push a new branch?”中所述。