git - git 的哪些部分对于名为 "master"的分支有特殊/默认行为?

标签 git branch

鉴于有 no wide agreementthe semantics of master ,我们正在考虑在我们的 origin 服务器上根本不存在名为 master 的分支。

对于标准 git 命令行客户端内置的默认值会产生什么后果?它如何以不同于本地和远程其他分支的方式对待名为 master 的分支?

最佳答案

根据我对代码库的调查以及我对没有 master 分支的存储库的经验,我想说你没有问题。

最坏的情况是,存在一些边缘情况,其中不明确会导致命令失败,而不是回退到 master 分支。


    当未找到远程引用并且未指定 --bare 标志时,
  • git clone 默认设置一个 master 分支( builtin/clone.c)
  • 带有 --anonymize 标志的
  • git fast export 会单独留下 master,因为它是众所周知的默认值,并且不会传达任何信息(built-in/fast-export.c)
  • merge 提交消息是根据目标分支自定义的(即“merge branchx”与“将branchx merge 到branchy”)( builtin/fmt-merge-msg.c )
  • git init 使用 master 作为默认分支名称 ( builtin/init-db.c )
  • 未指定分支名称 ( builtin/submodule--helper.c ) 时,git submodule 默认为 master

(下面的 git-remote.cfiles-backend.c 输出实际上并不与 master 分支交互)


上面的列表是通过在 git repository 上使用以下 git grep 编译的.

# Look for string literals within *.c files containing "master" 
# with 10 lines of context, excluding the t/ and contrib/ directories
$ git grep -C 10 -E -e \".*master.*\" -- :**/*.c :^t/ :^contrib/

关于git - git 的哪些部分对于名为 "master"的分支有特殊/默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50804941/

相关文章:

git - OpenSSH:git@github.com 权限被拒绝

git - 如何创建现有存储库的 gitsubtree?

git - git ignore 和 untrack 的区别

git - 从 git 存储库中删除未引用的提交

deployment - 部署环境和代码分支有什么区别?

svn - 在 SVN 中限制特征分支合并成本的好方法

关于静态变量优化的 C 分支

git - 查看不同 Git 分支中的文件而不更改分支

svn - 对于家庭项目,Mercurial 或 Git(或其他 DVCS)能否提供比 Subversion 更多的优势?

java - 我能以某种方式在 Android 中为 R 起别名吗?