1

我有一个带有单个分支的 git repo:主分支。相反,我希望将主分支称为“somethingelse”,这样以后我可以添加更多具有其他名称的分支。我不想有一个名为“master”的分支。

我该怎么做?

4

1 回答 1

3

假设您的遥控器的名称是:以下步骤应该可以工作origin

# Rename local master to somethingelse
git branch -m master somethingelse

# Delete the remote named origin's master
git push origin :master

# Checkout local somethingelse
git checkout somethingelse

# Push the branch somethingelse to remote
git push origin somethingelse

# Update the remote tracking branch for somethingelse
# otherwise the next pull/push might fail
git branch -u origin/somethingelse somethingelse

这些步骤有很多问题:

  • 没有现有的结帐会知道分支重命名
  • 当远程上不存在名为的分支时,下一个git pull会给你一个错误。master远程服务器上不存在默认分支的原因。要更新远程服务器上的默认分支,请使用git symbolic-ref我在最后提到的命令。
  • 在较新的 git 版本中,要删除远程上的分支,您需要配置receive.denyDeleteCurrentwarnor ignore,否则它不会让您执行删除。如果您无法更改远程上的配置,您将无法删除远程上的分支。尽管您可以将分支 master 重置到树中的其他位置并执行push -f.

更改远程服务器上的默认分支:

您需要有权访问远程服务器以配置将在新克隆上签出的默认分支:

git symbolic-ref HEAD refs/heads/somethingelse
于 2013-03-26T06:02:04.583 回答