Title: Git push to non-bare repository
       Author: Solène
       Date: 17 May 2016
       Tags: git versioning solved
       Description: 
       
       Hello
       
       You have a git repository where you work in, and you would like to
       work on a clone of it and push the data back to it ? You may encounter
       issues if your git repository isn't a bare one. I have been facing
       this problem by using gitit, which works with a non-bare git
       repository.
       
       
       
       
           $ git init --bare repo 
           $ ls -a repo/
           .            HEAD         config       hooks        objects
           ..           branches     description  info         refs
       
       
       You can't work in this, but this is the kind of repository that should
       be used to store/push/clone etc..
       
       
       
       
       
           $ ls -a repo2
           .    ..   .git
       
       You may use this one for local use, but you may want to clone it
       later, and work with this repository and doing push/pull. That's how
       gitit works, it has a folder "wikidata" that should be initiated as
       git, and it will works locally. But if you want to clone it on your
       computer, work on the documentation and then push your changes to
       gitit, you may get this error when pushing :
       
       
       ### Problem when pushing ###
       
       push, but no...
       
           Décompte des objets: 3, fait.
           Écriture des objets: 100% (3/3), 232 bytes | 0 bytes/s, fait.
           Total 3 (delta 0), reused 0 (delta 0)
           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'.
            ! [remote rejected] master -> master (branch is currently checked
       out)
       
       
       git is unhappy, I can't push
       
       
       
       repository with this command :
       
           $ git config --local receive.denyCurrentBranch updateInstead
       
       
       Now you should be able to push to your non-bare repository.
       
       Source: [Stack Overflowk link where I found the
       solution](http://stackoverflow.com/questions/1764380/push-to-a-non-bare
       -git-repository)