Use*_*456 2 git git-config git-remote git-bare
我很确定之前已经问过这个问题,但我似乎找不到它.很抱歉,如果它是一个dublicate.
我有一个裸存储库,我们称之为project_x.git,如果我们检查它所说的配置文件
[core]
repositoryformatversion = 0
filemode = false
bare = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
Run Code Online (Sandbox Code Playgroud)
所以它肯定是正确的,裸=真.现在我正在尝试用清理版替换master.
$ git push origin :master
remote: Updating references: 100% (1/1)
To http://gitrepo.local/git/project_x.git
! [remote rejected] master (branch is currently checked out)
error: failed to push some refs to 'http://gitrepo.local/git/project_x.git'
Run Code Online (Sandbox Code Playgroud)
我正在使用gitblit btw,这不是实际的服务器URL.
这个回应让我感到困惑,我怎样才能在我的裸仓库上设立一个结账分支?谁在那个分支上工作:),没有任何意义.要么它不是一些配置明智或gitblit与我搞乱.我不明白?
怎么了?
顺便说一句,如果我尝试的话
git push -f ,
Run Code Online (Sandbox Code Playgroud)
编辑:这有效但你不能删除我之前尝试过的分支.
谢谢
在裸仓库上设置了一个HEAD,它实际上指向在git clone <url>没有参数的情况下运行时检出的分支.
据我所知你无法删除远程HEAD分支,所以如果你想删除master,你必须推送第二个分支,将HEAD移动到该分支,然后在master中推送一个空分支:
本地:
git branch mybranch
git push origin mybranch
Run Code Online (Sandbox Code Playgroud)
在裸机上:
git symbolic-ref HEAD refs/heads/mybranch
Run Code Online (Sandbox Code Playgroud)
本地:
git push origin :master
Run Code Online (Sandbox Code Playgroud)
当然,master如果你愿意,你可以推送你调用的另一个分支,并将HEAD移回它.
git push origin newbranch:master
git symbolic-ref HEAD refs/heads/master #(on bare repo)
Run Code Online (Sandbox Code Playgroud)