Github现在推荐的一件事是将分支更改为main而不是master。
Github网站上给出的代码是:
git branch -M main
那对我从来没有起到作用,所以我想在这里提一下。我很难相信这个问题只会发生在我身上。
error: refname refs/heads/master not found
fatal: Branch rename failed
更新: Git 2.30 中的 -m
和 -M
选项已经升级,以允许在特殊情况下重命名尚不存在的当前分支名称,例如当您位于新的空存储库中时。
您在自己的回答中提到,只有在进行了初始提交后,git branch -m main
(或使用-M
)才能正常工作。
或者,在创建任何提交之前,可以使用git checkout -b main
将未出现的分支名称更改为main
。
在创建初始提交然后重命名分支与更改未出现的分支名称然后进行初始提交之间没有功能上的区别。 提交不会记住它们生成时的当前分支名称,1因此您可以随时更改分支名称。(其他人会记住分支名称,在他们的大脑中,并可能在克隆中保存一些分支名称,因此最好在任何其他人获取这些名称之前进行所有这些名称更改。 但这超出了你自己的Git之外。)
1git merge
命令生成默认的合并消息:
merge branch X [into Y]
而 git pull
会生成一个默认的合并信息:
merge branch X of 'url' [into Y]
X是你传递给git merge
的参数,使用git pull
运行git merge
时增加了一个URL,而Y则表示当前分支的名称,如果当前分支不是指定的“特殊”分支,则会出现。过去这个值被硬编码为master
,但现在可以配置。所有这些操作的最终结果是,当将功能合并到master
/main
时,您往往会得到形式为merge branch feature
的消息,而当将功能合并到其他分支时,则会得到形式为merge branch feature into develop
的消息。
请注意,这些自动生成的消息传达的有用信息相对较少,特别是如果您在合并之后删除feature
分支。举个例子,假设您将名称hotfix
保留为用于进行热修复的临时分支。那么您的仓库中将偶尔出现“merge branch hotfix”的提交,但每条消息都是针对不同的热补丁。这里所传达的信息几乎没有用处——您需要合并的日期,而不仅仅是消息才能找到正确的“热补丁”。在最坏的情况下,它可能会更糟,因为它可能会让您看错“热补丁”。如果您手动将其替换为“merge fix for critical customer bug#1234”,则会得到有用的消息。
(如果您的分支名称包括bug参考编号,那么这些消息是有用的。使用当前分支的“into branch Y”部分对我来说仍然相当边缘。)
这个操作至少需要有一个提交记录才能生效。
git status
On branch master
No commits yet
进行第一次提交。
git add *.html
git commit -m 'first'
[master (root-commit) 455481e] first
1 file changed, 54 insertions(+)
create mode 100644 start.html
git branch -m master main
git status
On branch main
git commit —allow-empty -m ‘initial’
。 - evolutionxboxGitHub使用“main”作为您的主要分支名称。它曾经使用过“master”,但git仍默认为“master”。您需要确保git和GitHub都使用相同的分支名称,因此请使用“main”。实现这一目标的最佳方法是将您的默认分支名称更改为“main”:
$ git config --global init.defaultBranch main
init.defaultbranch
配置。如果让Git决定,则默认为master。如果选择覆盖默认值...选项并指定其他内容,例如预设的main,则这将是系统范围内的默认值。选择此选项后,您可以跳过命名存储库初始化期间的初始分支的步骤。
git config --system init.defaultbranch
返回系统范围的设定值。
您可以使用以下方法在全局、用户级别上覆盖设置:
git config --global --add init.defaultbranch mistress
或者,按项目级别进行:
git config --add init.defaultbranch mastress
或者您可以手动更改 gitconfig
文件,该文件 - 在 Windows 上 - 存储在 etc
文件夹中。找到 init.defaultbranch 行并进行相应的编辑。