5

我有一个项目托管在我自己的个人 git 服务器上(它不在 GitHub 上)。master树枝是陈旧的饼干,我不再需要它了。

几个月前,我创建了一个0.8/develop分支master,从那时起我们经历了0.8/master, 0.9/develop0.9/master我们目前正在1.0/develop. 我想摆脱master分支,主要是因为它不符合我们建立的命名约定。这只是家务的问题。

我在 SO 上发现了几个相关的问题,以及一篇博文,但它们似乎都是特定于 GitHub 的使用,而不是我自己的私人服务器:

这些都具体说明了以下内容:

您需要转到分叉存储库的主 GitHub 页面,然后单击“设置”按钮。

当然,这不是一个选项,因为我没有使用 GitHub。我猜我可以在我的裸仓库中编辑配置文件的内容以获得相同的结果。那是对的吗?配置文件当前如下所示:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = false
        sharedRepository = group
[remote "origin"]
        url = file:///Library/WebServer/Documents/loupe
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

我有两个问题:

  1. 我应该将我的默认存储库设置为我当前的工作分支(1.0/develop)还是剩下的最旧的分支(0.8/develop)?
  2. 我需要对配置文件进行哪些修改才能设置默认存储库?
4

1 回答 1

7

首先决定在克隆存储库时哪个分支应该是默认分支。我假设new_master这个例子。

在其中一个客户端上创建new_master远程存储库上的分支,您可以使用任何master代替,例如提交或另一个分支名称,或者如果您已经在远程上有合适的分支,则跳过此步骤。

git push origin master:new_master

下一步无法从远程完成,因此请在远程存储库中执行命令(例如使用 SSH):

cd /path/to/my_git_repo
git symbolic-ref HEAD refs/heads/new_master

或者,HEAD直接更改文件的内容。

回到客户端:

git fetch
git remote show origin

你应该看到HEAD指向new_master而不是master(或者HEAD如果你设置new_master为是不明确的master)。现在我们可以删除旧的主人:

git push origin :master

Git 不应该再抱怨删除了。最后,设置本地refs/remotes/origin/HEAD

git remote set-head origin -a
于 2013-07-09T22:59:20.507 回答