在亲吉特书里,上面写着
“出处”并不特殊 就像Git中的分支名称“主人”没有任何特殊的含义一样,“起源”也没有任何特殊的含义。当您运行git init时,“”是启动分支的默认名称,这是它被广泛使用的唯一原因,而“”是远程运行git克隆时的默认名称。如果您运行的是git克隆-o引导,那么您的默认远程分支将是booyah/master。
这意味着,我们可以使用默认的分支名作为主分支或主分支或类似的东西。我在man git-init中没有看到任何选项,它将使用不同的默认分支名称初始化repo。
GitHub演示如何设置默认的分支名称。在其设置页面中。但我不是在谈论如何在任何特定的Git托管站点上设置它。我严格要求的只是Git,而不是任何具体的Git托管站点。
有办法吗?
发布于 2017-03-18 07:14:17
更新的Git,新的回购
由于GITVersion2.28.0,git init命令现在接受一个--initial-branch (或简称-b )参数。这两个命令创建了一个新的Git分支,名为“主干”,这对我来说总是比“主人”更有意义(什么的主人?)
git init --initial-branch=trunk
git init -b trunk这可以通过init.defaultBranch设置进行配置。如果我希望所有新的repos都将“主干”作为默认分支:
git config --global init.defaultBranch trunk旧Git,新回购
有些系统仍然有较老的Git安装。我的Debian 10服务器(Buster,截至2020年10月的稳定版本)附带了Git 2.20,它不支持-b选项。一种选择是创建存储库,然后更改分支名称。此技术适用于正常(非裸)恢复:
git init
git checkout -b trunk这将创建一个新的存储库,将trunk作为当前分支而不是master。分支master实际上并不存在--分支在至少有一个提交之前是不会被创建的。在创建分支之前,分支只存在于.git/HEAD中,这解释了为什么master分支在切换到trunk时会消失。
裸Repos
对于简单的repos,您不能运行git checkout (这就是赤裸的意思)。相反,您可以将头更改为指向另一个分支:
git init --bare
git symbolic-ref HEAD refs/heads/trunk旧Repos
如果您已经提交了,则可以运行git branch -m:
git init
touch file.txt
git add file.txt
git commit -m 'commit 1'
git branch -m trunk这会将创建后的分支从master重命名为trunk。
这看起来确实有点笨重,因为机制是不同的,取决于存储库是否是空的,但它可以工作。您还可以将其视为“创建一个新分支并删除master”。
发布于 2018-06-15 18:00:38
您可以间接地将git init配置为使用不同的默认分支:当前分支由HEAD定义,它“只是”一个文本文件,告诉Git哪个引用是当前的。
使用init.templateDir,您可以要求git init使用另一个:
# ~/.config/git/config or ~/.gitconfig
[init]
templateDir = ~/.config/git/template/在~/.config/git/template/HEAD中,放置一行(+换行):ref: refs/heads/main (默认为分支main)。
在创建存储库时,templateDir的全部内容被复制到.git目录中;默认值(此处为/usr/share/git-core/templates)包含一些示例钩子和其他文件,但是您可以使用新的模板目录来设置默认钩子。
$ tree /usr/share/git-core/templates
/usr/share/git-core/templates
├── branches
├── description
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── fsmonitor-watchman.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ ├── pre-receive.sample
│ └── update.sample
└── info
└── exclude
3 directories, 13 files发布于 2020-07-28 14:49:47
自从Git 2.28 (发布于2020年7月27日)成为新的配置选项以来,init.defaultBranch正在被引入以取代硬编码术语master。
默认保留为master!
用户可以使用以下方法覆盖配置变量的默认值:
$ git config --global init.defaultBranch main有关更多详细信息,请参阅git一章介绍init.defaultBranch。
https://stackoverflow.com/questions/42871542
复制相似问题