【Git】non-fast-forwardなコミットのpushが拒否される場合の対処法

Gitでnon-fast-forwardなコミットをpushする場合、以下のエラーが出てくる

To /home/user/remote.git/
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '/home/user/remote.git/'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

そんなときはgit push -fで…と思っていたけどまた別のエラーが出てきた…

Counting objects: 1, done.
Writing objects: 100% (1/1), 182 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To /home/user/remote.git/
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to '/home/user/remote.git/'

調べてみると、どうやらリモートリポジトリの設定がまずいらしい…
なのでリモートリポジトリにある.git/configファイルを修正しました

[core]
    repositoryformatversion = 0 
    filemode = true
    bare = true
    sharedrepository = 1 
[receive]
    denyNonFastforwards = false
    # trueにすると、non-fast-forwardなコミットが拒否される

これでpushに成功!よかったー

ちなみにgit init --bare--sharedオプションをつけるとこうなるみたい
皆で使うリポジトリにそんなpushしたらいけないってことか
なるほど