远程分支,远程跟踪分支和本地跟踪分支如何设置为相互对应?

时间:2019-01-10 02:29:44

标签: git

在git中,

  • 远程分支和远程跟踪分支如何设置为彼此对应?

  • 远程跟踪分支和本地跟踪分支如何设置为彼此对应?

他们在git clone期间完成了吗?

它们是否在某些配置文件中记录为某些配置变量?它们可以手动修改吗?

1 个答案:

答案 0 :(得分:2)

  

远程分支和远程跟踪分支如何设置为彼此对应?

Git将远程跟踪分支存储在remotes/命名空间中;参见git branch -avv。远程名称和分支名称使git记住什么本地引用对应于哪个远程分支。它们是.git/refs/remotes/子目录中的文件。在git gc/repack之后,它们被打包在.git/objects/pack/中。

在诸如git fetch/pull/push/remote update之类的命令中,当与远程存储库联系时,Git会更新远程跟踪分支。

  

远程跟踪分支和本地跟踪分支如何设置为彼此对应?

Git记得本地.git/config中的对应关系:

[remote "origin"]
        url = git@server/repo.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin

现在git知道远程跟踪分支remotes/origin/master对应于本地分支master

  

在git clone期间完成了吗?

最初,是的。

  

它们是否在某些配置文件中记录为某些配置变量?

是,在本地.git/config中。

  

它们可以手动修改吗?

通常是的,尽管工作量可能很大-您需要在目录.git/refs/remotes/中工作并编辑.git/config。对于.git/objects/pack/中的打包引用来说,手动操作是不可能的。因此,最好使用git子命令。