在git中,
远程分支和远程跟踪分支如何设置为彼此对应?
远程跟踪分支和本地跟踪分支如何设置为彼此对应?
他们在git clone
期间完成了吗?
它们是否在某些配置文件中记录为某些配置变量?它们可以手动修改吗?
答案 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
子命令。