zoukankan      html  css  js  c++  java
  • git push origin master 报错 remote rejected] master -> master (branch is currently checked out)

    解决办法:

    You can simply convert your remote repository to bare repository (there is no working copy in the bare repository - the folder contains only the actual repository data).

    Execute the following command in your remote repository folder:

    git config --bool core.bare true
    

    Then delete all the files except .git in that folder. And then you will be able to perform git push to the remote repository without any errors.

    shareedit
     
    4  
    Thanks. I also needed this. I was following the submodules tutorial from the Git Community Book and hit this roadblock. – Shiki Sep 14 '10 at 15:20
    5  
    I wasn't sure whether you meant to delete files on the server, or the client ... so I didn't delete anything, and the problem goes away after just doing git config --bool core.bare true. Is there any particular reason some files need to be deleted? If so, can you be more precise about what needs to be deleted? – Brian Vandenberg Jul 22 '11 at 4:19
    18  
    It's the best possible answer and nobody else have provided it in the hole Interwebs. I think that we all googled the same error message and we all were extremely happy to read this. – Sebastián Grignoli Jul 16 '12 at 14:56
    24  
    Although it got a whole lot of votes, I don't think this is a really adequate answer to that specific question. Instructing the user how to cleanly create a bare repo would be half as bad, but what if the files need to stay checked out, for example when it's the repository the user is working with on two computers? – Nowhere man Mar 18 '13 at 10:38
    4  
    Changing the source repo to bare is overkill. All you need to do is push to a new branch in the source repo, as @Robert points out: stackoverflow.com/a/2933656/402949. – Dan Solovay Oct 7 '13 at 1:16

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------

    在使用Git Push代码到数据仓库时,提示如下错误:

    [remote rejected] master -> master (branch is currently checked out)
    remote: error: refusing to update checked out branch: refs/heads/master
    remote: error: By default, updating the current branch in a non-bare repository
    remote: error: is denied, because it will make the index and work tree inconsistent
    remote: error: with what you pushed, and will require 'git reset --hard' to match
    remote: error: the work tree to HEAD.
    remote: error:
    remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
    remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
    remote: error: its current branch; however, this is not recommended unless you
    remote: error: arranged to update its work tree to match what you pushed in some
    remote: error: other way.
    remote: error:
    remote: error: To squelch this message and still keep the default behaviour, set
    remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
    To git@192.168.1.X:/var/git.server/.../web
     ! [remote rejected] master -> master (branch is currently checked out)
    error: failed to push some refs to 'git@192.168.1.X:/var/git.server/.../web'

    这是由于git默认拒绝了push操作,需要进行设置,修改.git/config添加如下代码:

        [receive]
        denyCurrentBranch = ignore

    在初始化远程仓库时最好使用 git --bare init   而不要使用:git init

       如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时,   如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上,  也即在远程仓库的目录下对应的文件还是之前的内容,必须得使用git reset --hard才能看到push后的内容.

  • 相关阅读:
    CloudStack tomcat集成方式分析
    cloudstack-setup-databases cs数据安装
    CloudStack 安装时需要的第三方包
    制作initramfs/initrd镜像
    GRUB使用说明
    Linux的kickstart安装详解
    cs4.1 编译与安装
    CS4.1 RPM打包函数分析
    Markdown 打出上下标
    matlab命令行双箭头消失
  • 原文地址:https://www.cnblogs.com/oxspirt/p/6103621.html
Copyright © 2011-2022 走看看