如果有一个我只有git://访问权限的存储库(并且通常只是push + pull),有没有办法以与我本地相同的方式重命名该存储库中的分支git://?
我有一个裸存储库,用作我项目的中央存储.所有开发人员都git clone <repo>愿意与之分享.当他们进行克隆时,他们会检查主分支(除非他们这样做git clone -n)因为repo.git/HEAD包含ref: refs/heads/master,使其成为活动分支.
问题是,如何正确更改活动分支?我可以简单地直接破解repo.git/HEAD文件,但这看起来很讨厌,而且,哈哈.
我尝试git checkout <otherbranch>在repo .git目录中做,但是因为我不在工作树中而失败了.
我试过git update-ref HEAD refs/heads/otherbranch但是刚刚更新的refs/heads/master与refs/heads/otherbranch相同(好吧,我在虚拟存储库中做了那个,而不是我的生产!)
我试过git update-ref --no-deref HEAD refs/heads/otherbranch,这几乎奏效了.它更新了HEAD文件,但它将其设置为指向的提交的SHA1 refs/heads/otherbranch.
我正在使用git版本进行测试1.7.0.2.msysgit.0.
我猜测没有办法做到这一点git push,因为允许所有和各种更改你的默认分支似乎有点不安全(!),但肯定有一个更好的方法在repo .git目录中执行它比直接黑客HEAD文件.
如何将Git遥控器的HEAD引用设置为指向除"master"之外的其他内容?
我的项目有一个不使用"主"分支的策略(所有分支都有有意义的名称).此外,规范主存储库只能通过ssh://访问,没有shell访问权限(如GitHub或Unfuddle).
我的问题是远程存储库仍然有一个HEAD引用refs/heads/master,但我需要它指向一个不同的分支.这导致两个问题:
克隆回购时,有这个,
警告:远程HEAD是指不存在的ref,无法结帐.
这令人困惑和不方便.
基于Web的代码浏览器依赖于HEAD作为浏览树的基础.我需要HEAD指向一个有效的分支,然后.
如何从GitHub/Bitbucket中删除远程主分支?
我尝试着:
# git push bb --delete master
remote: bb/acl: user is allowed. accepted payload.[K
remote: error: refusing to delete the current branch: refs/heads/master[K
To ssh://git@bitbucket.org/user/reponame.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to 'ssh://git@bitbucket.org/user/reponame.git'
Run Code Online (Sandbox Code Playgroud)
我也试过了
git push bb :master
Run Code Online (Sandbox Code Playgroud)
但这一切都行不通.
在一个git项目中,我在一个分支中做了一些重构,现在这个分支应该是一个新项目.我把这个项目从github搬到了bitbucket.现在我想删除旧的master并使重构分支成为新的master.
我试图删除主人:
$ git branch -D master
Deleted branch master (was a947288).
$ git push origin :master
remote: error: refusing to delete the current branch: refs/heads/master
! [remote rejected] master (deletion of the current branch prohibited)
Run Code Online (Sandbox Code Playgroud)
在bitbucket前端我无法删除主人.那我怎么能得到那个呢?或者我是否必须创建一个新项目并将重构分支推入其主服务器?
我有一个项目托管在我自己的个人git服务器上(它不在GitHub上).该master分支是一个陈旧的旧Cookie,而且我不需要它了.
几个月前,我创建了一个0.8/develop分叉的master,从那时起,我们已经经历了0.8/master,0.9/develop,0.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
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
1.0/develop),还是最左边的分支(0.8/develop)?