gpt4 book ai didi

git - 如何创建默认分支名称不是 "master"的 Git 存储库?

转载 作者:IT王子 更新时间:2023-10-29 00:58:08 25 4
gpt4 key购买 nike

Pro Git book , 它说

“origin” is not special

Just like the branch name “master” does not have any special meaning in Git, neither does “origin”. While “master” is the default name for a starting branch when you run git init which is the only reason it’s widely used, “origin” is the default name for a remote when you run git clone. If you run git clone -o booyah instead, then you will have booyah/master as your default remote branch.

这意味着,我们可以使用我们的默认分支名称作为 mainmain-branch 或类似的名称。我在 man git-init 中没有看到任何选项,它将使用不同的默认分支名称初始化我的 repo

GitHub shows how to set the default branch name在其设置页面中。但我不是在谈论如何在任何特定的 Git 托管站点 上设置它。严格来说,我只是在 Git 方面询问,而不是关于任何特定的 Git 托管站点

有办法吗?

最佳答案

更新的 Git,新的 Repo

从 git 版本 2.28.0 开始,git init 命令现在接受一个 --initial-branch(或简称 -b)参数.这两个命令创建了一个新的 Git 存储库,其中有一个名为“trunk”的分支,这对我来说总是比“master”(什么的主人?)更有意义:

git init --initial-branch=trunk
git init -b trunk

这可以通过 init.defaultBranch 设置进行配置。如果我希望所有新的 repo 协议(protocol)都将“主干”作为默认分支:

git config --global init.defaultBranch trunk

旧版 Git,新版本

有些系统仍然安装了较旧的 Git。我的 Debian 10 服务器(Buster,截至 2020 年 10 月的当前稳定版本)附带 Git 2.20,它不支持 -b 选项。一种选择是创建存储库,然后更改分支名称。此技术适用于普通(非裸) repo :

git init
git checkout -b trunk

这将创建一个新的存储库,将 trunk 作为当前分支而不是 master。分支 master 实际上并不存在——分支只有在至少有一次提交后才会被创建。在分支创建之前,分支只存在于.git/HEAD中,这就解释了为什么切换到trunkmaster分支会消失.

裸 repo

对于 bare repos,你不能运行 git checkout(这就是 bare 的意思)。相反,您可以更改 HEAD 以指向不同的分支:

git init --bare
git symbolic-ref HEAD refs/heads/trunk

旧 repo

如果你已经提交,你可以运行 git branch -m 代替:

git init
touch file.txt
git add file.txt
git commit -m 'commit 1'
git branch -m trunk

一旦创建,这会将分支从 master 重命名为 trunk

这看起来确实有点笨拙,因为机制因存储库是否为空而异,但它确实有效。您也可以将其视为“创建新分支并删除 master”。

关于git - 如何创建默认分支名称不是 "master"的 Git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42871542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com