我的问题是为什么下面的.git/config
文件没有[branch "development"]
部分;添加这样的部分有什么作用;我如何测试到底发生了什么,就像虚拟文件一样?
以下是详细信息:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = test@test:test.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
我有一个硕士和开发分支。正如预期的那样,当我git checkout development
时,我可以在开发中进行不在主管理中的更改。稍后,我可以将开发合并回主数据库。
我很困惑为什么没有在.git/config
中配置开发分支.
我的猜测是你没有与development
关联的上游/远程,因此不需要配置条目。如果使用 git push origin development -u
将其推送到源,则应在配置中看到它。
我很困惑为什么没有在
.git/config
中配置开发分支.
您根本没有给定分支的上游或跟踪定义。
为什么没有跟踪分支或上游?
它实际上取决于您的 git 版本,因为它已在 git 版本 2.0 中更新。
如果您在旧版本的 git (<2.0) 中克隆/创建了存储库,这就是您没有上游/跟踪分支的原因。
您可以在此处阅读所有相关信息:https://git.kernel.org/cgit/git/git.git/tree/Documentation/RelNotes/2.0.0.txt
当
git push [$there]
没有说要推送什么时,我们使用了 到目前为止的传统matching
语义(您所有的分支都已发送 到远程,只要已经有同名的分支 那边)。 在 Git 2.0 中,默认值现在是simple
语义, 它推动:仅
将当前分支转换为具有相同名称的分支,并且仅 当当前分支设置为与该遥控器集成时 分支,如果您推送到与从中获取的同一远程;或
仅将当前分支转换为具有相同名称的分支(如果) 正在推送到一个不是您通常从中获取的遥控器。
您可以使用配置变量
push.default
更改 这。 如果您是想继续使用matching
语义,您可以将变量设置为matching
,对于 例。 阅读文档以了解其他可能性。