search
LoginSignup
41

More than 5 years have passed since last update.

posted at

updated at

git pushでremote rejectedと怒られた時にやったことメモ

サーバー1→サーバー2→クライアント(Netbeans)とgit cloneして、サーバー2に対してgit pushしようとしたら以下のようなメッセージが。

そのときにやったことメモ

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 ssh://hoge@example.com/home/hoge/git/
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'ssh://hoge@example.com/home/hoge/git/'

・サーバー2側
リモートリポジトリの設定確認

$ git config --get-all core.bare
false

上記でfalseだったらtrueにする

$ git config --bool core.bare true

ノンベアとベアってなんだろうって感じだったんですが、どうやらこういうことらしい。

ノンベアリポジトリはワーキングディレクトリあり
ベアリポジトリはワーキングディレクトリなし。更新情報のみ保持。

ワーキングディレクトリは、ファイルそのものがあるディレクトリのこと。

いい加減gitお勉強しないといけませんね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
41