git 分支 -M 主

Har*_*son 6 git branch

github 现在推荐的一件事是将分支更改为 main 而不是 master。

github站点上给出的代码是:

git branch -M main
Run Code Online (Sandbox Code Playgroud)

这对我来说从来不起作用,所以我想我会在这里提到它。我很难相信这个问题只会发生在我身上。

error: refname refs/heads/master not found
fatal: Branch rename failed
Run Code Online (Sandbox Code Playgroud)

tor*_*rek 24

更新-m git 分支的和-M选项在 Git 2.30 中进行了升级,以允许在特殊情况下重命名尚不存在的当前分支名称,例如当您位于新的空存储库中时。

\n
\n

您在自己的答案中提到(git branch -m main或与 相同-M)仅在您进行初始提交后才有效。

\n

或者,在创建任何提交之前,使用 将git checkout -b main未出生分支的名称切换为main.

\n

创建初始提交然后重命名分支与更改未出生的分支名称然后进行初始提交之间没有功能差异。提交不会记住创建时哪个分支是当前分支,1因此您可以随时更改分支名称。(其他在他们的大脑中记住了分支名称,并且可能在克隆中保存了一些分支名称,因此最好在其他人获得这些名称之前完成所有这些名称更改。但这不属于您自己的范围吉特。)

\n
\n

1但是,该git merge命令会生成默认合并消息:

\n
merge branch X [into Y]\n
Run Code Online (Sandbox Code Playgroud)\n

git pull生成默认合并消息:

\n
merge branch X of \'url\' [into Y]\n
Run Code Online (Sandbox Code Playgroud)\n

其中 X 是您给git merge\xe2\x80\x94 的参数,并在用于git pull运行git merge\xe2\x80\x94 时添加了 URL,并且 Y 存在,并且是当前分支的名称(如果当前分支不是指定的“特殊分支”) “ 分支。master与过去一样,这是硬编码的,但正在变得可配置。所有这一切的最终结果是,merge branch feature当将功能合并到master/时,您往往会收到以下形式的消息main,而当将功能合并到其他分支时,您往往会收到以下形式的消息merge branch feature into develop

\n

请注意,这些自动生成的消息传达的有用信息相对较少,尤其是feature在合并分支后删除分支时。举一个特定的例子,假设您hotfix为进行热修复的临时分支保留名称。然后,您的存储库偶尔会提交“合并分支修补程序”,但每个消息都针对不同的修补程序。这里传达的信息几乎没有用\xe2\x80\x94你需要合并的日期,而不仅仅是消息,才能找到正确的“热门错误”。在最坏的情况下,它可能比无用更糟糕,因为它可能会让您看到错误的“热门错误”。如果您手动将其替换为“合并修复关键客户错误 #1234”,您会收到一条有用的消息。

\n

(如果您的分支名称包含错误参考号,那么这些消息很有用。不过,使用当前分支的“进入分支 Y”部分对我来说仍然很边缘。)

\n


Har*_*son 5

必须至少有一次提交才能使其发挥作用。

git status
Run Code Online (Sandbox Code Playgroud)
On branch master

No commits yet


Run Code Online (Sandbox Code Playgroud)

进行第一次提交。

git add *.html
git commit -m 'first'
Run Code Online (Sandbox Code Playgroud)
[master (root-commit) 455481e] first
 1 file changed, 54 insertions(+)
 create mode 100644 start.html
Run Code Online (Sandbox Code Playgroud)
git branch -m master main
git status
Run Code Online (Sandbox Code Playgroud)
On branch main
Run Code Online (Sandbox Code Playgroud)

请注意如何重命名本地 Git 分支?中更完整的说明。


小智 5

GitHub使用“main”作为主分支的名称。以前使用“master”,但git仍然默认为“master”。您想确保gitGitHub使用相同的分支名称,因此使用“main”。实现此目的的最佳方法是将默认分支名称更改为“main”:

$ git config --global init.defaultBranch main
Run Code Online (Sandbox Code Playgroud)